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

[文件操作] [已解决]批处理批量更名成功但提示错误信息

for /f %%b in (d:\numbers.txt) do ren D:\Movie\FullDisc\爱情白皮书\*.rmvb unknow%%b.doc
d:\numbers.txt的内容为:
1
2
3
4
我用以上代码对D:\Movie\FullDisc\爱情白皮书 目录下的四个rmvb文件进行批量更改文件名与后缀,
四个rmvb文件成功地被更改了unkown1 .doc  unkown2 .doc  unkown3 .doc  unkown4 .doc  
但是命令提示符窗口却提示一下错误信息
ren D:\Movie\FullDisc\爱情白皮书\*.rmvb unknow1.doc
存在一个重名文件,或是找不到文件。
存在一个重名文件,或是找不到文件。
存在一个重名文件,或是找不到文件。
ren D:\Movie\FullDisc\爱情白皮书\*.rmvb unknow2.doc
存在一个重名文件,或是找不到文件。
存在一个重名文件,或是找不到文件。
ren D:\Movie\FullDisc\爱情白皮书\*.rmvb unknow3.doc
存在一个重名文件,或是找不到文件。
ren D:\Movie\FullDisc\爱情白皮书\*.rmvb unknow4.doc

麻烦前辈帮忙看看到底是哪里出错了 应该怎么优化这段代码?

[ 本帖最后由 sunshineblue 于 2009-6-25 23:08 编辑 ]
1

评分人数

    • pusofalse: 感谢主动给标题加[已解决]字样。PB + 2

晕。你这写的是什么东西啊。你理解*.rmvb的意思吗?ren D:\Movie\FullDisc\爱情白皮书\*.rmvb unknow%%b.doc你能完全的说清楚这一句的作用吗?这是要把目录D:\Movie\FullDisc\爱情白皮书下所有的rmvb文件同时重命名为unknow%%b.doc。你觉得这样会不会出错呢。我只点到这,其它的你自己想想。如果你只是命名成unknow1.doc的形式可以用下面这个。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. cd /d D:\Movie\FullDisc\爱情白皮书\
  4. for /f "delims=" %%i in ('dir /b *.rmvb) do (
  5. set /a a+=1
  6. ren "%%i" "unknow!a!.doc"
  7. )
复制代码

[ 本帖最后由 zljzsmzzx 于 2009-6-25 18:24 编辑 ]
1

评分人数

TOP

不好意思!我刚刚接触批处理!
还没学到延迟环境变量扩展和for /f %%i in ('命令语句') do (……)的用法
看了您的代码学习后终于解决了!谢谢指点!

TOP

返回列表