如何在没有绝对路径的情况下在远程服务器上调用 cmd

use*_*130 6 windows script batch-file

我想在远程服务器上调用 cmd(我们称之为 x.cmd)。x.cmd 将返回日志文件夹中的日志文件。问题是 x.cmd 中的这个日志文件夹没有绝对路径(只是像 log\ 这样的相对路径)所以如果我这样做

wmic /node:server process call create "serverpath\x.cmd"
Run Code Online (Sandbox Code Playgroud)

它将处理 x.cmd 但将日志文件保存到system32我假设的某个地方。如果我添加cd /d %~dp0到 x.cmd 然后它工作正常。不幸的是,我不允许触摸 x.cmd。只是想知道有没有其他方法可以在不修改它的情况下调用 x.cmd 以及正确的输出。谢谢。

JS

npo*_*aka 3

http://msdn.microsoft.com/en-us/library/windows/desktop/aa389388(v=vs.85).aspx

接受的第二个参数wmic process是目录。您可以尝试以下操作:

wmic /node:server process call create "serverpath\x.cmd" , "c:\path\to\x.cmd"
Run Code Online (Sandbox Code Playgroud)

或者

wmic /node:server process call create CommandLine="serverpath\x.cmd" CurrentDirectory="c:\path\to\x.cmd"
Run Code Online (Sandbox Code Playgroud)

您可能需要在远程计算机上进行一次额外的调用net share才能获取目录的准确位置。像这样的东西:

wmic /node:server process call create "cmd /c \"net share ^> \\\\myshare\\server.shares.txt \""
Run Code Online (Sandbox Code Playgroud)