2017-12-27 489 views
0

我試圖在Visual Studio中的調試會話期間將命令行參數<(單角括號,不帶引號)傳遞給C++程序。如Project settings for a C++ debug configuration中所述,<作爲重定向操作符具有特殊含義,但不指定如何轉義它。我試過使用"<"^<,但他們都沒有做我想要的。根據預期,從命令行調用帶有"<"參數的命令。在Visual Studio中跳轉調試命令參數

所以它看起來像調試命令參數是第一次預處理。有沒有辦法從這個預處理中逃離角色?

+0

請給出您想要使用的完整命令行(「<」,沒有別的,這適用於我)和您正在使用的Visual Studio版本。 –

+0

'<'因爲它不是一個參數,所以它是一個重定向操作符。它實際上不會將參數傳遞給您的可執行文件。正如我在問題中所述,我想傳遞一個參數 - <'字符串。 –

+0

正如我所說:它適用於我。當我輸入「<」(帶雙引號)時,「<」(不帶雙引號)傳遞給我的程序。正如我所要求的,請提供更多信息。 –

回答

0

看起來像傳遞"<"如果使用「啓動調試」工作。我正在使用「無需調試即可開始」,因此可以通過將"<"傳遞給空白控制檯應用程序並調用「無需調試即可開始」來重現問題。

「無調試開始」似乎實際上調用了cmd.exe,因此命令參數受制於命令行解釋規則。然後問題就變成了如何在命令行中跳出<<外部雙引號可以通過使用^<轉義,但我仍然不知道如何在雙引號內跳轉<

我必須說,調試命令參數的解釋取決於程序啓動的方式會受到不同規則的影響,這有些令人驚訝。

+0

非常有趣。我可以在這裏重現,但沒有解決辦法。最好在MS社區網站上提問(也許在這裏重新發布答案)。 –

+0

@Igor Akhmetov,感謝您在這裏分享您的解決方案,如果可能的話,您可以將其標記爲答案。另外,使用「無需調試即可開始(Ctrl + F5)」和「開始調試(F5)」,我們也可以得到與您相同的結果。對於這個問題,如Werner Henze的建議,您可以將其報告給社區網站:https://developercommunity.visualstudio.com/spaces/8/index.html。感謝您再次分享您的解決方案。祝你今天愉快:) –