批处理文件,以使另一个批处理文件执行

时间:2013-08-28 07:26:07

标签: batch-file cmd

我正在尝试创建一个批处理文件(比如说a.bat),当运行时创建另一个批处理文件(比方说b.bat)。现在,我正在使用b.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"
)

a.bat中用于在b.bat中编写代码的代码是

@echo off

set VarOne=@echo 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 个答案:

答案 0 :(得分:0)

npocmaka和LS_dev在评论中说的是正确的。您必须将每个redirectTo: 'notfound'加倍并使用:

%

我亲自测试了这两个并且可以确认。