簡體   English   中英

在C#中保留轉義字符

[英]Keeping Escape Characters in C#

我可能完全錯了,或者忽略了一些顯而易見的事情,但這確實可行。 我正在通過C#使用AWS CLI。 我正在嘗試向命令行發送命令以更改EC2的實例類型

我嘗試了不同的處理方式,以@開頭的字符串,封裝雙引號的單引號等。這是我目前擁有的:

private static void resizeCurrentInstance(string instance)
        {
            string commands = "/C aws ec2 describe-instances --instance-ids " + instance;
            string response = getNewProcess(commands);

            JObject convertedResponse = JObject.Parse(response);
            int i = 0;
            string ReturnString = "";

            foreach (JObject item in convertedResponse["Reservations"])
            {
                if (item["Instances"][i]["InstanceType"].Value<string>().Contains(".large"))
                {
                    string sizeUpCommand = "/C aws ec2 modify-instance-attribute --instance-id" + instance + " --instance-type \"{\"Value\": \"m4.4xlarge\"}\"";
                    string sizeUpResponse = getNewProcess(sizeUpCommand);

                    Console.WriteLine("Instance Size inscrease " + sizeUpResponse.ToString());
                }
                else
                {
                    string sizeDownCommand = "/C aws ec2 modify-instance-attribute --instance-id " + instance + ' --instance-type \"{\"Value\": \"m4.large\"}\"';
                    string sizeDownResponse = getNewProcess(sizeDownCommand);

                    Console.WriteLine("Instance Size decrease " + sizeDownResponse.ToString());
                }
            }
        }

問題來自嘗試生成命令字符串以發送到此處的命令行

string sizeUpCommand = "/C aws ec2 modify-instance-attribute --instance-id" + instance + " --instance-type \"{\"Value\": \"m4.4xlarge\"}\""

這是亞馬遜文檔中給出的命令:

aws ec2 modify-instance-attribute --instance-id i-1234567890abcdef0 --instance-type "{\"Value\": \"m1.small\"}"

我試圖弄清楚如何編寫字符串,因此輸出為:“ {\\” Value \\“:\\” m1.small \\“}”

嘗試這個:

"{\\\"Value\\\": \\\"m1.small\\\"}"

如果需要在字符串中保留反斜杠,則可以在\\"之前使用\\\\

但是,您在--instance-id之后也缺少空格,這會弄亂命令。

所以它應該看起來像這樣:

string sizeUpCommand = "/C aws ec2 modify-instance-attribute --instance-id " + instance + " --instance-type \"{\\\"Value\\\": \\\"m4.4xlarge\\\"}\""

如果那不起作用,則將sizeUpCommand輸出到控制台並檢查它,以確保它應該是正確的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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