批处理文件 - 语法命令不正确

Batch file - Syntax command is incorect

我在下面得到了这个命令。

@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。但是提示"Syntax command is incorrect"。我的代码有什么问题?

这里是一个快速重写,希望涵盖目前提出的所有评论。

@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

您会注意到我将路径放在双引号内,因为这是一种很好的做法,我不知道脚本目录是否包含字符,例如空格,这会导致问题没有他们。