我正在尝试使用一些同事拥有的遗留代码从VB脚本过渡到C#。我似乎无法确定如何转移这条线。任何帮助都会有所帮助。
Set objShell = CreateObject("wscript.shell")
objShell.Run """C:\Program Files\Ipswitch\WS_FTP Professional\ftpscrpt.com"" -f P:\share\getfiles.scp", 1, True
Set objShell = Nothing
答案 0 :(得分:2)
这是我挖出的一些旧笔记,但应该有效:
Process proc = new Process();
proc.StartInfo.FileName = @"C:\Program Files\Ipswitch\WS_FTP Professional\ftpscrpt.com";
proc.StartInfo.Arguments = @"-f P:\share\getfiles.scp";
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.UseShellExecute = false;
// start the process
proc.Start();
// wait for it to finish
proc.WaitForExit(5000);
// get results
string output = proc.StandardOutput.ReadToEnd();
string error = proc.StandardError.ReadToEnd();
答案 1 :(得分:1)
我认为确切的C#等价物是这样的:
var objShell = Microsoft.VisualBasic.Interaction.CreateObject("wscript.shell");
objShell.Run("\"C:\\Program Files\\Ipswitch\\WS_FTP Professional\\ftpscrpt.com\\" -f P:\share\getfiles.scp", 1, true);
objShell = null;
但实际上,您应该添加对相关程序集的引用并直接调用其方法。
答案 2 :(得分:1)
有关执行命令的信息,请参阅 example (向下滚动到示例)。您可以尝试更改 UseShellExecute 选项以获得结果。