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

[文件操作] ren命令文件更名为何出错?

为什么会出现第一个不能更名,是不是和有两个X有关,请指点

回复 13楼 的帖子

谢谢,非常感谢!高手高手高高手

TOP

同要修改文件名的文件保存于同一目录下,文件名为“银行X.bat”,运行即可
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f %%i in ('dir /b') do (
  4. set a=%%i
  5. ren !a! 银行!a:~-5!
  6. )
  7. exit
复制代码
测试脚本
  1. @echo off
  2. echo.>610222x.dbf
  3. echo.>610222x.shp
  4. echo.>610222x.shx
  5. echo.>610222d.dbf
  6. echo.>610222d.shp
  7. echo.>610222d.shx
  8. echo.>610222m.dbf
  9. echo.>610222m.shp
  10. echo.>610222m.shx
  11. echo 建立试验文件!!!
  12. pause>nul
  13. :b
  14. setlocal enabledelayedexpansion
  15. for /f %%i in ('dir /b') do (
  16. set a=%%i
  17. ren !a! 银行!a:~-5!
  18. )
  19. cls
  20. echo 文件名修改完毕^^!^^!^^!
  21. pause>nul
  22. exit
复制代码

[ 本帖最后由 BAT1 于 2010-8-31 01:21 编辑 ]

TOP

回复 11楼 的帖子

不行呀!如何解决呀!

TOP

问号不也是通配符嘛!

TOP

回复 9楼 的帖子

如何解决这人问题,指点

TOP

其实一点也不郁闷,刚开始我也被搞晕了 .
但是后来发现 *X.*   包括了哪几个文件,就知道问题出在哪里了。
*d.*  包含   610222d.dbf   610222d.shp   610222d.shx
*m.* 包含  610222m.dbf   610222m.shp   610222m.shx  
*x.*   包含  610222d.shx   610222m.shx   610222x.bdf   610222x.shp   610222x.shx

TOP

回复 4楼 的帖子

只要把ren *x.* aax.*不放在开始就能正确,郁闷!

TOP

回复 4楼 的帖子

如何解决,我把三个顺序调整后又能正确,但我不敢确定文件是否有问题,我想这个顺序没关系

TOP

文件没问题

TOP

回复 3楼 的帖子

3L,对应了,ren *d.*无误,ren *x.*把银行d和6m也更了名,而前者没有影响
OrzDEF

TOP

ren语法中,如aaa.*这样,此时.*支持无后缀,即aaa.*=aaa;*x.*=*x,而*x又可以匹配6X.shx,因为shx的最后是x
OrzDEF

TOP

三个x的都生成了,少的是m的?但是遗留文件是x的?

……确定对应了么?

TOP

你单独试下 “ ren 610222X.dbf  银行x.dbf  ”看看有没有问题,注意检查文件的属性是否允许,试试在文件名外增加双引号,或者直接拷贝到C:\下测试。
还有就是,你那个单词的REN是否支持了遍历?

TOP

返回列表