没有循环遍历所有文件

问题描述:

Windows批处理脚本: 我有三个文件在drectory.I`m试图循环通过位于目录中的多个文件并重命名文件,但一些如何它不循环。 我可以看到,var1正在获取正确的文件名,但不是sub1。这反过来以错误的输出重命名目录中的其他两个文件。有人能帮我解决这个问题吗?没有循环遍历所有文件

@echo on & setlocal EnableDelayedExpansion 

set a=9 
for /f "tokens=*" %%i in ('dir /b "C:\XX\YY\ZZ*"') do ( 
set var1=%%i 
SET sub1=%var1:~7,22% 
ECHO %sub1% 
    ren "%%i" "ABC!sub1!_!a!.dat" 
    set /a a+=1 
) 

@echo on 
setlocal EnableDelayedExpansion 
set a=10001 
for /f "tokens=*" %%i in ('dir /b "C:\TEST\PBM\PAR*"') do ( 
set var1=%%i 
SET sub1=!var1:~7,22! 
ECHO !sub1! 
    ECHO ren "%%i" "ABC!sub1!_!a!.dat" 
    set /a a+=1 
) 

delayedexpansion随着到在循环内改变必须使用!var!语法变量的值的任何参考。 %var%将访问分析时间值值。

注意:REN现在是echo ed进行验证。

+0

非常感谢。 – 2014-12-05 00:49:24