我試圖從IE的緩存文件夾中複製css文件到C: 某些文件夾事情是很多重複的,但我想保留他們所有,所以我做了一個批處理腳本來複制所有的css文件,並在每個文件的開頭添加一個計數器/索引變量。問題是變量不增加,我不知道爲什麼?這是我的腳本:批處理腳本for循環,變量不遞增,需要複製/重命名重複文件
@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-infinity)。
我也試過!c!而不是複製行部分中的%c%,但它只是逐字添加「!c!」而不是變量的價值。
我在這裏做錯了什麼?
你用'!c!'在正確的軌道上,但是你需要在你的循環之前使用'setlocal enableDelayedExpansion'來激活'!var!'語法(延遲擴展) – dbenham
不要緊,我找出原因! omg即時通訊如此愚蠢。 ENABLEDELAYEDEXPANSION應該是EnableDelayedExpansion!它的大小寫敏感!現在工作! :)) –
它不區分大小寫 - 你可能有一個拼寫錯誤,你沒有注意到:)我喜歡使用混合大小寫只爲了可讀性。 – dbenham