C# 使用PsExec和C运行远程批处理文件#

C# 使用PsExec和C运行远程批处理文件#,c#,batch-file,psexec,C#,Batch File,Psexec,我正在尝试使用PsExec运行一个远程批处理文件,该文件已经位于远程计算机上,在C#中通过进程调用。我已经确认所有必需的文件都已经存在,但是我相信我的语法可能有问题,因为重定向的输出表明它找不到指定的文件 PsExec运行所针对的计算机是动态的,即myArray[0].MachineName值(这会毫无问题地拉入) 有没有关于格式不正确的想法?我猜某处的反斜杠太多了(或者不够!) 我认为主要的问题是两个论点之间没有空格 试试这个: wsStopProcess.StartInfo.Argument

我正在尝试使用PsExec运行一个远程批处理文件,该文件已经位于远程计算机上,在C#中通过进程调用。我已经确认所有必需的文件都已经存在,但是我相信我的语法可能有问题,因为重定向的输出表明它找不到指定的文件

PsExec运行所针对的计算机是动态的,即myArray[0].MachineName值(这会毫无问题地拉入)


有没有关于格式不正确的想法?我猜某处的反斜杠太多了(或者不够!)

我认为主要的问题是两个论点之间没有空格

试试这个:

wsStopProcess.StartInfo.Arguments = @"\\" + myArray[0].MachineName + @" D:\stopprofile.bat";
wsStopProcess.StartInfo.Arguments = @"\\" + myArray[0].MachineName + @" D$\stopprofile.bat";
我还要警告您,尽管尝试了许多不同的方法,但我无法让psexec 100%工作。

尝试以下方法:

wsStopProcess.StartInfo.Arguments = @"\\" + myArray[0].MachineName + @" D:\stopprofile.bat";
wsStopProcess.StartInfo.Arguments = @"\\" + myArray[0].MachineName + @" D$\stopprofile.bat";

因此,不要使用
尝试
$
符号。在调试过程中,在上述行上设置断点也将帮助您查看确切的路径。

感谢您的响应!可悲的是,即使有空间,它也不太正常。这是我的更新行:wsStopProcess.StartInfo.Arguments=@“\\”+myArray[0].MachineName+@“D:\stopprofile.bat”;