在 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\"}"


尚方宝剑之说
浏览 190回答 2
2回答

HUWWW

如果您需要在字符串中保留反斜杠,则可以\\在\".但是您还缺少一个空格--instance-id,这会弄乱命令。所以它应该看起来像这样:string&nbsp;sizeUpCommand&nbsp;=&nbsp;"/C&nbsp;aws&nbsp;ec2&nbsp;modify-instance-attribute&nbsp;--instance-id&nbsp;"&nbsp;+&nbsp;instance&nbsp;+&nbsp;"&nbsp;--instance-type&nbsp;\"{\\\"Value\\\":&nbsp;\\\"m4.4xlarge\\\"}\""如果这不起作用,则输出sizeUpCommand到控制台并检查它以确保它是应该的。

开满天机

尝试这个:"{\\\"Value\\\":&nbsp;\\\"m1.small\\\"}"
打开App,查看更多内容
随时随地看视频慕课网APP