我在下面得到了这个命令。
@echo off
pushd %~dp0
echo "checking unhealthy cmclient" >> %~dp0\pc_down_info.txt
for /F %%M in (%~dp0\pc_info.txt) do (
ping -n 1 -w 1 %%M >nul
if errorlevel 1 echo %%M is down >> %~dp0\pc_down_info.txt
If not errorlevel 1 (
cd c:\psexec
psexec -d -i \\%%M %~dp0\FixCM.exe
)
)
pause
我尝试使用psexec远程执行文件。我在 pc_info.txt 中获得了PC列表。我试图执行共享驱动器中的 FixCM.exe 。但它提示"语法命令不正确"。我的代码怎么了?
答案 0 :(得分:1)
这是一个快速重写,希望能够涵盖到目前为止提出的所有评论。
@Echo Off
Echo="checking unhealthy cmclient">>"%~dp0pc_down_info.txt"
For /F "UseBackQ" %%M In ("%~dp0pc_info.txt") Do (
("%__AppDir__%Ping.exe" -n 1 -w 1 %%M)>Nul 2>&1
If ErrorLevel 1 (Echo=%%M is down>>"%~dp0pc_down_info.txt") Else (
"C:\PsExec\PsExec.exe" -d -i \\%%M "%~dp0FixCM.exe"))
Pause
你会注意到我已经在doublequotes中放置了路径,因为这是一个很好的做法,我不知道脚本目录是否包含字符,例如空格,如果没有它们会导致问题。