[英]C# Executing CMD command with quotation mark in string
我要執行以下cmd命令:
"C:\Program Files\bin\install332.exe" remove tap0901
這是我在C#中的代碼:
ProcessStartInfo Install332= new ProcessStartInfo();
path Install332.FileName = ("cmd.exe");
//Our cmd code
Install332.Arguments = (""C:\Program Files\bin\install332.exe" remove tap0901"");
Install332.WindowStyle = ProcessWindowStyle.Hidden;
Install332.CreateNoWindow = true;
Process.Start(Install332);
但是cmd命令將無法正確執行,因為不會顯示指定“ install332.exe”位置的cmd命令中的引號。 感謝您的幫助。
我什至不理會“ cmd.exe”
Install332.FileName = (@"C:\Program Files\bin\install332.exe");
Install332.Arguments = ("remove tap0901");
這樣,您不必擔心路徑中帶有空格的雙引號,但是您將需要定界反斜杠或使用逐字字符串,就像我在這里所做的那樣。
請嘗試以下方法:
string path = "\"C:\\Program Files\\bin\\install332.exe\" remove tap0901";
Console.WriteLine(path);
結果應為:
"C:\Program Files\bin\install332.exe" remove tap0901
Install332.Arguments = (@"""C:\Program Files\bin\install332.exe"" remove tap0901");
給定的字符串中有五個引號。 這意味着其中一個沒有匹配項,最后是一個額外的"
。
Install332.Arguments = (""C:\Program Files\bin\install332.exe" remove tap0901");
最好使用@
使字符串成為逐字字符串文字 ,因為您正在處理路徑。
逐字字符串文字以
@
開頭,並且也用雙引號引起來。逐字字符串的優點是不處理轉義序列,這使得編寫起來很容易。
Install332.Arguments = (@"""C:\Program Files\bin\install332.exe"" remove tap0901");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.