2017-08-23 219 views
0

我需要附加到另一批处理脚本中的特定行。我怎样才能做到这一点?这在.bat中是微不足道的,还是我会更好地使用Python。我知道更多的Python比我做的.bat。批处理脚本编辑另一批处理脚本

我在设置路径的.bat中有一行。

它看起来像set path=%TEST_ROOT%\bin;%WINDIR%\system32;

我需要找到这一行和粘性上的其他环境变量进行到底。我可以用Python做,但宁愿做.bat。

所以,我正在寻找将这种

​​
+0

使用环境变量要输出'%ADDTHISVAR%'字面上之前只设置一个环境变量,双'% '-signs like'echo/%% ADDTHISVAR %%';对于整体任务,使用['for/F'循环](http://ss64.com/nt/for_f.html)遍历另一个批处理文件的行;在循环体中,可以执行['if'comparison](http://ss64.com/nt/if.html),或者可以使用['find'](http://ss64.com/nt /find.html)或['findstr'](http://ss64.com/nt/findstr.html)来搜索您要修改的特定行... – aschipfl

回答

-1

你可以做的是读取文件的每一行,并同时把它们写出来,以一个新的临时文件(或持有它在内存中)。检查每行是否不是set path=%TEST_ROOT%\bin;%WINDIR%\system32;,如果是,请在将它写入临时文件之前将其附加到它。然后用temp文件替换或覆盖现有的文件。

但是,下次尝试运行脚本并搜索该行时,它将已经有%ADDTHISVAR%,因此您需要检查它是否已经存在。

你可能会更好运行的.bat文件,并具有通过批处理文件代替%ADDTHISVAR%