[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 【已结】批量重命名的批处理文件,但是有的文件处理失败

代码是:
  1. @echo off&setlocal EnableDelayedExpansion
  2. set mulu=%cd%
  3. set n=1
  4. for /f "tokens=1" %%a in ('dir /b/a-d %mulu%\*.jpg') do (
  5. ren %mulu%\%%a "!n!.jpg"
  6. set/a n+=1
  7. )
  8. echo 处理成功!
  9. pause
复制代码


运行后在处理:bhdnc 7)[1].jpg 这样的文件时,提示找不到文件,不清楚是什么原因,请教..

[ 本帖最后由 hxf0759 于 2008-11-27 09:25 编辑 ]

把@echo off&删除
在ren前面加个echo
自己看看就明白了
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

原帖由 Batcher 于 2008-11-27 09:30 发表
把@echo off&删除
在ren前面加个echo
自己看看就明白了

知道是空格的原因,但是不知道怎么修改,"号不知道应该加在哪里

TOP

回复 3楼 的帖子

那就把路径全部加上双引号
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

光加引号还不够,tokens=1 要改为 tokens=*
技术问题请到论坛发帖求助!

TOP

已经解决了

代码修改如下
  1. @echo off&setlocal EnableDelayedExpansion
  2. set mulu=%cd%
  3. set n=1
  4. for /f "tokens=*" %%a in ('dir /b/a-d "%mulu%\*.jpg"') do (
  5. ren "%mulu%\%%a" "!n!.lis"
  6. set/a n+=1
  7. )
  8. echo 处理成功!
  9. pause
复制代码

TOP

"tokens=*" 不如 "delims=" 好。
因为有的时候文件名开头有空格,而 "tokens=*" 会把开头的空格去掉。

TOP

回复 7楼 的帖子

呵呵,对dir遍历文件而言,首位的空格忽略与否好象都不影响。
技术问题请到论坛发帖求助!

TOP

D:\测试目录>dir/b *.jpg
    314_0012.jpg
5.jpg

D:\测试目录>setlocal EnableDelayedExpansion

D:\测试目录>set n=1

D:\测试目录>for /F "tokens=*" %a in ('dir /b/a-d "*.jpg"') do (
ren "%a" "!n!.lis"
set/a n+=1
)
D:\测试目录>(
ren "314_0012.jpg" "!n!.lis"
set/a n+=1
)
系统找不到指定的文件。

D:\测试目录>(
ren "5.jpg" "!n!.lis"
set/a n+=1
)

D:\测试目录>
1

评分人数

    • more: 精辟PB + 6 技术 + 1

TOP

看了这文章,我也解决了名字中有空格的问题.谢谢各位啦

TOP

返回列表