经本人用下面的两个代码测试有了一点小发现,但还不完全...
两个代码的区别在于生成的文件名的大小和重命名文件后所形成的文件名的大小
下面就说说我的分析吧:
运行代码1形成的文件为123456789.dst,重命名后变成3456789.dst,由于for还要按顺序进
行文件的查找,这样会再找到重命名后的3456789.dst,这样会再把3456789.dst命名为
56789.dst,但是为什么不再把56789.dst重命名,本人无解,期待高手...
运行代码2形成的文件为341256789.dst,重命名后变成1256789.dst,由于for是按顺序进行
查找的,先前已经从以3开头的文件开始找了,重命名后的文件12356789.dst的开头1已经比3小,
所以批处理结束.
以上是本人的一点愚见,如有不足,请各位指正,补充...
代码1:- :@echo off
- del *.dst >nul 2>nul
- cd.>123456789.dst
- setlocal enabledelayedexpansion
- for %%a in (*.dst) do (
- echo %%a
- set "name=%%a"
- ren "%%a" "!name:~2!"
- )
- pause
复制代码 代码2:- :@echo off
- del *.dst >nul 2>nul
- cd.>341256789.dst
- setlocal enabledelayedexpansion
- for %%a in (*.dst) do (
- echo %%a
- set "name=%%a"
- ren "%%a" "!name:~2!"
- )
- pause
复制代码
|