我可能完全做錯了,或者忽略了一些顯而易見的事情,但事實就是如此。我通過 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\"}"
2 回答

HUWWW
TA貢獻1874條經驗 獲得超12個贊
如果您需要在字符串中保留反斜杠,則可以\\
在\"
.
但是您還缺少一個空格--instance-id
,這會弄亂命令。
所以它應該看起來像這樣:
string sizeUpCommand = "/C aws ec2 modify-instance-attribute --instance-id " + instance + " --instance-type \"{\\\"Value\\\": \\\"m4.4xlarge\\\"}\""
如果這不起作用,則輸出sizeUpCommand
到控制臺并檢查它以確保它是應該的。
- 2 回答
- 0 關注
- 228 瀏覽
添加回答
舉報
0/150
提交
取消