簡體   English   中英

OS變量用作命令行參數

[英]OS variables being used as command line arguments

是否可以保留用作命令行參數的OS變量。

例如:Test.exe%Temp%

具有擴展的temp變量,而不是變量本身。

所以:

  Console.WriteLine("Args:\n");
  foreach (string cl in args)
  {
    Console.WriteLine(cl);
  }

輸出類似:

Args:

C:\Temp

我需要的是變量保持展開狀態:

Args:

%Temp%

您需要轉義這樣的百分比: Test.exe ^%Temp^% 這樣,您應該獲得所需的輸出。

你試過了嗎:

Test.exe "%Temp%"

這可能足以阻止OS擴展環境變量。

或者,或者考慮您是否真的需要傳遞特定於操作系統的形式的環境變量名稱。 在不知道Test.exe任何細節的情況下,您可能只使用:

Test.exe Temp

然后在Test.exe中,您只需按名稱檢索環境變量即可。 我認為這反而更符合慣例。

同樣(再次,沒有更多細節,很難說)在運行時傳遞環境變量的名稱似乎很奇怪。 變量名稱是動態的嗎? 您能否將環境變量的名稱放入一個靜態的變量中,以便Test.exe可以從諸如“ Test_exe_init”之類的統一命名變量中檢索該名稱?

set Text_exe_init=Some_Dynamic_Variable_Name
Test.exe

在Text.exe內部,它使用

string foo=GetEnvironmentVariable("Test_exe_init");

如何在C#中獲取和設置環境變量?

只是一個想法...

暫無
暫無

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

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