2013-08-28 328 views
0

我想做一個批處理文件(讓我們說a.bat),當運行時創建另一個批處理文件(可以說b.bat)。現在,我使用b.bat在a.bat重命名是重命名某些文件。該代碼,批處理文件,使另一個批處理文件執行

@echo off 
SETLOCAL ENABLEDELAYEDEXPANSION 

SET "folder=path\to the\file" 

::Action 
CD /d "%folder%" 
FOR %%F IN ("old filename") DO (
MOVE "%%F" "new filename" 
) 

中的代碼b.bat是編寫代碼,

@echo off 

set [email protected] off 
set VarTwo=SETLOCAL ENABLEDELAYEDEXPANSION 
set VarThree=::Action 
set VarFour=CD /d "path\to the\file" 
set VarFive=FOR %%F IN ("old filename") DO (
set VarSix= MOVE "%%F" "new filename" 
set VarSeven=) 

echo %VarOne% >> %Output%\test.bat 
echo %VarTwo% >> %Output%\test.bat 
echo %VarThree% >> %Output%\test.bat 
echo %VarFour% >> %Output%\test.bat 
echo %VarFive% >> %Output%\test.bat 
echo %VarSix% >> %Output%\test.bat 
echo %VarSeven% >> %Output%\test.bat 

現在問題是,當b.bat生成時,它是這樣的,

@echo off 
SETLOCAL ENABLEDELAYEDEXPANSION 

SET "folder=path\to the\file" 

::Action 
CD /d "" 
FOR %F IN ("old filename") DO (
MOVE "%F" "new filename" 
) 

從%% f%文件夾%和%已經消失了。那麼,我如何得到它的權利?請幫幫我。

+1

使用4%s - >'設置VarFive = FOR %%%% F IN(「舊文件名」)DO(' – npocmaka

+0

您必須加倍每個'%' –

+0

非常感謝我的兄弟倆。 – user2717098

回答

0

npocmaka和LS_dev在評論中說的是正確的。你有每個%和使用翻番:

set VarFive=FOR %%%%F IN ("old filename") DO (

我親自測試過這兩種,可以確認。

相關問題