如何在bat文件中执行psexec命令

How can I execute psexec commands in bat file

我正在尝试编写一个将完成以下任务的 bat 文件:

psexec \host1 cmd
d: #to change the remote server's drive
cd\
dir /s/b "file1" #searches for this file in host1 in its d: drive

我该怎么做

psexec \host1 cmd /c "d: & cd\ & dir /s/b file1"

或者干脆

psexec \host1 cmd /c "dir /s/b d:\file1"

命令执行完毕后,执行cmd的控制台会自动关闭,所以您实际上看不到结果。您可以使用 /k 而不是 /c 来保留 cmd 运行(以及控制台),但这也没有多大意义。您似乎有 XY 问题。

如果您使用的是当天 Windows 系统,您可以使用 PowerShell 从您的 cmd .bat 脚本中调用远程计算机上的命令。不需要 psexec。远程机器确实需要为 PowerShell 远程设置。 Get-Help about_Remote

powershell -NoProfile -Command "invoke-command HOST01 { cmd /C dir /S /B D:\file1 }"

如果您 运行 使用 PowerShell:

invoke-command HOST01 { cmd /C dir /S /B D:\file1 }

当然,在 PowerShell 中,您也可以使用 PowerShell cmdlet。

icm HOST01 { gci -n -rec D:\file1 }
    -or-
Invoke-Command HOST01 { Get-ChildItem -Name -Recurse D:\file1 }