如何使用VB.NET来执行另一台计算机上的批处理文件?
-
23-08-2019 - |
题
在2008年vb.net我想执行驻留在另一台计算机上的批处理文件。 没有错误,但没有任何反应。 下面是代码:
Dim pStart As New System.Diagnostics.Process
Dim startInfo As New System.Diagnostics.ProcessStartInfo(serverpath & "\file.bat")
startInfo.RedirectStandardOutput = True
startInfo.WindowStyle = ProcessWindowStyle.Hidden
startInfo.UseShellExecute = False
pStart = System.Diagnostics.Process.Start(startInfo)
pStart.WaitForExit()
pStart.Close()
解决方案
要在远程计算机上运行的过程可以使用的Sysinternals自由 PSEXEC
您可以用适当的参数调用它,并且具有所需的权限就像你在你的示例代码做的事情。
其他提示
我从来没有尝试来创建使用批处理文件作为可执行的过程。我一直使用CMD.EXE作为程序。这已经在过去的工作对我来说:
Dim startInfo As New System.Diagnostics.ProcessStartInfo("cmd.exe", "/c " & serverpath & "\file.bat")
在“/ C”作为参数列表的一部分告诉cmd.exe的批处理文件完成后退出。
如果您要使用RedirectStandardOutput,你真的想用RedirectStandardError,然后还订阅Process类的事件,对这些流(OutputDataReceived和ErrorDataReceived)捕获数据。否则,你就没有办法来调试你的批处理脚本。
此读象权限问题。我想这种方式解决它,如果你不排除出来呢。结果 你有没有试过运行从本地计算机相同的批处理文件?点击 如果它是一个权限问题就可以解决在执行前,要么将文件复制本地或驱动器映射到其中的文件是远程计算机,然后从新的路径执行批处理文件。
此外,我们真的不知道什么是在可能会造成一个问题,该批处理文件。我要么发布批处理文件,或者如果您不能发布批处理文件使用批处理文件,你可以发布。例如一个批处理文件会写当前的日期时间到文件中。
不隶属于 StackOverflow