Batch file 批处理脚本以并行运行文件中的命令
我需要使用cmd工具,这是非常不完善的。通常需要花费大量时间才能返回提示,否则它将挂起 我想通过创建一个新的批处理文件来自动化这个过程,该批处理文件接收input.txt文件中的命令,并对该批处理进行并行调用,以避免浪费时间,并将所有内容记录在日志文件中 这就是我所能做到的Batch file 批处理脚本以并行运行文件中的命令,batch-file,Batch File,我需要使用cmd工具,这是非常不完善的。通常需要花费大量时间才能返回提示,否则它将挂起 我想通过创建一个新的批处理文件来自动化这个过程,该批处理文件接收input.txt文件中的命令,并对该批处理进行并行调用,以避免浪费时间,并将所有内容记录在日志文件中 这就是我所能做到的 @echo off for /f "tokens=*" %%a in (input.txt) do ( START %%a >> result.txt TIMEOUT /T 60 ) PAUSE 但我得
@echo off
for /f "tokens=*" %%a in (input.txt) do (
START %%a >> result.txt
TIMEOUT /T 60
)
PAUSE
但我得到了一个错误:
The process cannot access the file because it is being used by another process.
我认为这是指重定向到results.txt,因为前面的命令仍在运行
除此之外,它还用CMDs填充我的电脑
谁能帮我一下吗?这有点让人困惑。您希望命令并行执行,但不希望在不同的CMD窗口中执行?您应该尝试添加/B:
START /B %%a
这将使CMDs生成不可见-表示在后台。为了避免访问冲突错误,可以将重定向从bat文件移动到txt文件,方法是将重定向附加到每一行。假设您的txt如下所示:
...
ping 127.0.0.1
copy C:\xyz.txt d:\xyz.txt
...
...
ping 127.0.0.1>>result.txt
copy C:\xyz.txt d:\xyz.txt>>result.txt
...
修改后的文件如下所示:
...
ping 127.0.0.1
copy C:\xyz.txt d:\xyz.txt
...
...
ping 127.0.0.1>>result.txt
copy C:\xyz.txt d:\xyz.txt>>result.txt
...
这看起来很相似,但有很大的不同。START ping 127.0.0.1>>result.txt表示写入START的结果。。。在开始ping 127.0.0.1>>result.txt时,将ping命令的结果写入文本文件。将结果存储到不同的文件中,例如result-%%~na.txt,然后将它们连接起来。能否给出input.txt内容的示例?问题是我将打开~1000 cmd。有没有办法在之后关闭cmd?您可以尝试出现并退出到每一行。这将在执行后关闭CMD。如果您只希望在命令执行时无错误地将其关闭,请使用&&EXIT。EXIT听起来很完美。我试试看