2013-08-28 276 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 (

我亲自测试过这两种,可以确认。

相关问题