2013-07-15 64 views
2

IM初學者,我的任務是什麼做的文件夾重命名文件,首先這裏有一塊我的代碼: -批次擴展變量不能在字符串中使用替換功能

setlocal enabledelayedexpansion 
set tempLogDate=0 
set g=0 

for /r %targetStore% %%i IN (*2013*.*) do (
    set tempLogDate=9 
    set g=!g:%tempLogDate%=! 
) 

問題變量%tempLogDate%值是0而不是9,我知道我需要使用變量擴展(我有),但我不能替換代碼「設置g =!g:%tempLogDate%.rar =!」以 「集G = G:! tempLogDate .rar程序=!」,我嘗試轉義字符,但沒有結果,你們請提前幫助me..thanks

+0

在此之前,這裏是字符串替換原有的代碼,我指的是 關閉@echo 組字符串=這是我的字符串的工作。 set string =%string:要使用。=% echo%string% 輸出=這是我的字符串 基於它,我需要初始化值「處理」。進入字符串變量,因爲我需要在循環中使用它,所以這就是混亂, – paiseha

回答

3

請認準delayed expansionsetlocal /?endlocal /?。例如:

@ECHO OFF &setlocal enabledelayedexpansion 
set "tempLogDate=0" 
set "g=0" 

for /r %targetStore% %%i IN (*2013*.*) do (
    set "tempLogDate=9" 
    CALL SET "g=%%g:!tempLogDate!=%%" 
) 
+0

哇你是批次GODLIKE,這是第二次你解決了我的問題與非常具體的答案,非常感謝,〜上帝保佑你@恩多羅〜 – paiseha