簡體   English   中英

在控制台應用程序中,防止轉義命令行參數中特殊序列的最佳方法是什么?

[英]in a console app what's the best way to prevent special sequences in command line arguments from being escaped?

我編寫了這個控制台應用程序,它讀取一系列命令行參數並對其進行處理。

問題是,如果用戶輸入如下內容:

 --folder "C:\my folder\" --username john

Main函數的args String數組將包含2個元素,而不是4個:

1st element: "--folder"
2nd element: "C:\my folder\" --username john"

(\\“序列以雙引號轉義。)

由於不使用引號將導致5個元素...

--folder C:\my folder\ --username john

1st element: --folder
2nd element: C:\my
3rd element: folder\
4th element: --username
5th element: john

...解決這個問題的最佳方法是什么?

這是Windows上奇怪的命令行解析規則的結果。 請參閱http://msdn.microsoft.com/zh-CN/library/windows/desktop/17w5ykft(v=vs.85).aspx 命令行實際上應該是:-- --folder "C:\\my folder\\\\" --username john

這是用戶輸入錯誤。 您不應該嘗試更正它的代碼。 只是優雅地失敗。

暫無
暫無

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

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