我正在尝试编写一个将完成以下操作的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
我该怎么做呢
答案 0 :(得分:1)
如果您使用的是当前的Windows系统,则可以在cmd .bat脚本中使用PowerShell在远程计算机上调用该命令。不需要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 }
答案 1 :(得分:0)
psexec \\host1 cmd /c "d: & cd\ & dir /s/b file1"
或只是
psexec \\host1 cmd /c "dir /s/b d:\file1"
执行cmd
的控制台在命令执行完毕后自动关闭,因此您实际上看不到结果。您可以使用cmd
代替/k
使/c
保持运行(以及控制台),但这也没有多大意义。您似乎有XY问题。