繁体   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