批处理文件,以生成一个文件,然后递归运行原始文件

时间:2014-08-15 10:01:27

标签: windows batch-file cmd echo io-redirection

所以我有一个脚本来调整我的电脑上的设置:Tweak.cmd。当然,有些系统会像一些调整,有些则不会。每次调整都需要重启。此脚本在Windows XP到8.1上运行,也可以在某些Windows 2000中运行。

我有另一个名为Timer.cmd的批处理文件。 Timer向文件写入系统运行测试所需的时间。

还有第3个文件TestTweak.cmdTestTweak从名为options.txt的文件中读取第一行,然后从options.txt中删除该行。

Options.txt看起来像

reset
tweak1
reset
...
tweakn
reset

现在我希望TestTweak.cmd创建一个名为TestMe.cmd的文件。

@Echo SET l0= cd "%pth%">TestMe.cmd
@Echo SET l1= Call %Timer% 1 %Args% >>TestMe.cmd
@Echo SET l2= Call %Timer% 2 %Args% >>TestMe.cmd
@Echo SET l3= Call %TestTweak% >>TestMe.cmd
@Echo %%l0%% >>TestMe.cmd
@Echo %%l1%% >>TestMe.cmd
@Echo %%l2%% >>TestMe.cmd
@Echo %%l3%% >>TestMe.cmd
@Echo SET l0=>>TestMe.cmd
@Echo SET l1=>>TestMe.cmd
@Echo SET l2=>>TestMe.cmd
@Echo SET l3=>>TestMe.cmd

我写的其他内容和TestTweak

结尾
call Tweak.cmd %Args%
shutdown -r -t 10

因此,当它重新启动时,我运行TestMe.cmd文件。请注意,TestMe.cmd通过设置下一个TestTweak文件来调用TestMe.cmd

基本上我不喜欢我创建新文件的方式。我试过的时候:

@Echo cd "%pth%" >TestMe.cmd
@Echo call Timer.cmd 1 %Args%>>TestMe.cmd
@Echo call Timer.cmd 2 %Args%>>TestMe.cmd
...

我发现它会运行Timer,更糟糕的是,运行TestTweak,然后写入TestMe。我似乎在覆盖TestMe.cmd时遇到了问题,同时它还在运行:(因此我被set var=欺骗以处理额外的字符和行。

我试过了:

Echo. | Set /p= cd %pth% >TestMe.cmd
Echo >>TestMe.cmd

但我一直在 Echo开启/关闭。尝试REM并没有更好,因为它附加到前面的行'参数。

这个网站很棒 - 人们真的很乐于助人。我希望有人可以帮助我,因为这让我疯了。第一个是如何在不执行的情况下编写文件,而辅助是在处理TestMe的重写。

谢谢。

〜只是个傻瓜和他的dos批处理文件

0 个答案:

没有答案