循环的批处理脚本,变量不递增,需要复制/重命名重复文件

时间:2013-10-14 18:12:53

标签: batch-file copy duplicates rename

我试图将css文件从IE的缓存文件夹复制到C中的某个文件夹: 事情是有很多重复,但我想保留它们全部,所以我制作了一个批处理脚本来复制所有的css文件,并在每个文件的开头添加一个计数器/索引变量。问题是变量没有增加,我不知道为什么?这是我的剧本:

@echo off
setlocal ENABLEDELAYEDEXPANSION
set /a c=0
for /f "tokens=*" %%A in ('dir /b /s /a-d "C:\Users\%username%\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5\*.css"') do (
set /a c=c+1
copy "%%A" "C:\Target\%c%_%%~nxA"
)
endlocal

而不是复制了大约30个css文件(我知道这个因为我可以在IE的缓存文件夹中看到它们)我只复制了10个并且它们只是在前面附加了“0_”而不是递增的数字(1-无穷大)。

我也试过了!c!而不是复制线部分中的%c%,但它只是字面上添加“!c!”而不是变量的值。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

不是那么快(每个文件副本一个目录),但是为每个css文件获得独立的编号

set source=C:\Users\%username%\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5
for /f "tokens=*" %%A in ('dir /b /s /a-d "%source%\*.css"') do (
    for /f %%C in ('dir /b "c:\target\*_%%~nxA" ^| find /c "_"') do (
        copy "%%A" "c:\target\%%C_%%~nxA"
    )
)