簡體   English   中英

C#使用字符串中的引號執行CMD命令

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM