![让 robocopy 跳过文本文件中的离线计算机](https://linux22.com/image/1531777/%E8%AE%A9%20robocopy%20%E8%B7%B3%E8%BF%87%E6%96%87%E6%9C%AC%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84%E7%A6%BB%E7%BA%BF%E8%AE%A1%E7%AE%97%E6%9C%BA.png)
我正在尝试编写一个批处理文件,将robocopy
服务器上的 msi 文件发送到当时在线的所有域 PC。它应该跳过已列出该文件的 PC 和离线的 PC。
目前我正在用这个。
for /f %%i in (\\domain.lan\folder\folder\computers.txt) do robocopy c:\software\msifolder \\%%i\c$\install /MIR
之后,我psexec
在目标电脑上打开 CMD 并运行 MSImsiexec
psexec \\computername.domain.lan -u domain\"Username" -p "Password" cmd >> \domain.lan\folder\folder\software.install.txt 2>&1
msiexec.exe /quiet /i c:\install\software.msi /norestart
这个想法是让这个脚本作为一项任务运行一周,以便在尽可能多的无人值守的电脑上安装程序。
和运行正常。但不断重试访问离线的psexec
PC 。它应该直接跳到下一台计算机。msiexec
robocopy
我尝试提供尽可能多的信息。如果您需要更多信息,请告诉我。
答案1
将/W
和/R
开关添加到您的 RoboCopy 命令。
每科技网:
/r:<N> 指定复制失败的重试次数。 N 的默认值为 1,000,000(一百万次重试)。 /w:<N> 指定重试之间的等待时间(以秒为单位)。 N 的默认值为 30(等待时间 30 秒)。
因此命令:
robocopy c:\software\msifolder \\%%i\c$\install /MIR /R:1 /W:1
每隔一秒将重试一次,如果远程机器处于离线状态,则放弃复制。