我有一個小程序,通過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
編輯:Appearantly添加 「/ C」 我的命令開始,它的工作。
(string strCmdText = @"/C cd /D C:\ && cd Program Files\TightVNC && _ tvnviewer.exe 192.168.0.233 -password=******";
)
我以爲的使用/ C是簡單的命令被執行後&沒有任何與該命令實際執行或不關閉指令終端?
任何人可以澄清爲什麼突然起作用?
它可能與你的命令串聯有關。沒有/ C開關,那可能不起作用。首先嚐試一下sinle命令。哦,更好的是,使用'ProcessStartInfo'而不是cd到目標文件夾。然後你甚至不需要cmd.exe,但你可以直接啓動查看器。 – PMF
我試過使用單個命令之前連接這樣的命令,它給了我完全相同的結果而不使用/ C開關。是的,我以前可能應該想到這個選擇,但是我已經很累了,而且因爲這不是一個商業產品,所以我並不介意我做的事情有點草率,我期望的是一件好事結果:) – Yorrick