如何在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 }
我正在尝试编写一个将完成以下任务的 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 }