假设有某文件夹,里面有各种类型的文件,有一部分是以数字命名的,如12.gif,现在想将它们的文件名从1开始累加,效果如:0.gif、1.bmp、 2.jpg,以下是在下写的一个批处理:
SETLOCAL ENABLEDELAYEDEXPANSION
set num=0
for /f %%i in ('dir /a /b') do (
set fix=%%~xi
::判断后缀名
if exist !num!!fix! (call:cho "%%i") else ren "%%i" !num!!fix!
::判断是否有相同的文件名
set /a num+=1
)
pause>nul
goto :eof
::这里的goto :eof是不是可以用exit来代替?
:cho
if exist !num!!fix! (set /a num+=1 & goto cho) else ren %1 !num!!fix!
goto :eof
问题:
1、它为什么不会判断有空格的文件?我明明加了""了的
2、除了不会判断空格,它还有什么漏洞,在下实在是测试不出来,麻烦各位帮忙指正。
SETLOCAL ENABLEDELAYEDEXPANSION
set num=0
for /f %%i in ('dir /a /b') do (
set fix=%%~xi
::判断后缀名
if exist !num!!fix! (call:cho "%%i") else ren "%%i" !num!!fix!
::判断是否有相同的文件名
set /a num+=1
)
pause>nul
goto :eof
::这里的goto :eof是不是可以用exit来代替?
:cho
if exist !num!!fix! (set /a num+=1 & goto cho) else ren %1 !num!!fix!
goto :eof
问题:
1、它为什么不会判断有空格的文件?我明明加了""了的
2、除了不会判断空格,它还有什么漏洞,在下实在是测试不出来,麻烦各位帮忙指正。
我确实是只菜鸟,而且这里X人太多,所以我不敢装X。谁要再说我装X,我就XXOO他。
