我有一个小程序,它通过cmd.exe运行命令行,纯粹是为了舒适。
它基本上是为了让我在一个程序中选择唤醒另一台PC(或使用TightVNC直接连接到它以使其处于待机模式)。
我遇到的问题如下:
这段代码在这里:
string strCmdText = @"cd /D C:\ && cd Program Files\TightVNC && _
tvnviewer.exe 192.168.0.233 -password=******";
System.Diagnostics.Process.Start("CMD.exe", strCmdText);
由于某些原因,此代码对我不起作用。它没有在命令终端给我任何输出,也没有打开TightVNC进程,而当我只是将它复制/粘贴到我的命令行时,它工作正常,立即打开连接。
我想:“也许这是具有双反斜杠的strCmdText
变量的最终输出,但是在此代码中使用的方法相同:
string path = @"C:\Users\Yorrick\Desktop\wakemeonlan\WakeMeOnLan.exe";
string commandText = path + @" /wakeup 192.168.0.233";
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = commandText;
process.StartInfo = startInfo;
在那里,commandText
变量具有双反斜杠(\\
)。
任何可以帮我找到解决方案的人?这并不是我真的需要这个程序,但我想拥有它,因为它节省了我一点时间(我喜欢我的桌面杂乱无章,因此我尝试使用尽可能少的快捷方式,因为我可能)
谢谢,Yorrick
编辑:在我的命令开头添加“/ C”,它确实有效。
(string strCmdText = @"/C cd /D C:\ && cd Program Files\TightVNC && _
tvnviewer.exe 192.168.0.233 -password=******";
)
我认为/ C的用法仅仅是在命令执行后关闭命令终端&与实际执行的命令没有任何关系?
任何能够澄清为何突然发生作用的人?
答案 0 :(得分:1)
要回答您的编辑,/C
标志并不意味着关闭 - 它意味着执行以下命令。因此,不包括/C
标志将不会运行您的命令。