批处理:从多个cmd

时间:2017-06-08 16:41:11

标签: windows multithreading batch-file cmd

朋友你好:)首先我会告诉你当前的情况,然后问题。

::状况::

我有一个批处理文件,它为computerList.txt文件中列出的每个主机名/ IP启动一个单独的cmd实例和一个psexec连接。

FOR /F %%i in (computerList.txt) DO (
start cmd /k "PsExec \\%%i -s cmd /c \\server\Commands.bat >> %LOGFILEpath%"
)

它作为参数传递包含我希望计算机运行的所有命令的bat文件。它在每台计算机上本地保存一些数据到变量,然后简单地用“echo”调用所有变量,格式如csv,比如说:

echo %date%,%time%,%hostname%,%outputOfTheMainCommand%

该行应写入日志文件,以便我可以使用excel将其作为csv打开,并且可以轻松地生成相当好的报告。

::问题::

上面描述的过程,在使用单个实例循环computerList.txt时,将每次执行的输出捕获到日志文件很简单。此时我的“创新”现在是开始多个实例来做同样的事情,这样我就可以节省更多的时间。

问题在于只有第一台计算机才能编写文件。在所有其他实例窗口中,我收到日志文件正在使用的消息,因此我无法将输出写入其中。

有没有办法将所有实例的输出重定向到单个日志文件?我该怎么做?我想要获取父批次(在变量数组或其他东西中)首先捕获的实例的输出,然后将它们全部发送到日志文件,但我不知道该怎么做。

有任何帮助吗?非常感谢你!

0 个答案:

没有答案