Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用powershell设置可以随时访问的环境变量?_Powershell_Command_Environment Variables - Fatal编程技术网

如何使用powershell设置可以随时访问的环境变量?

如何使用powershell设置可以随时访问的环境变量?,powershell,command,environment-variables,Powershell,Command,Environment Variables,我有12345格式的文本文件。 我想将该值设置为环境变量,这样即使关闭了powershell,我也可以访问它。 我的期望是,当我想从命令行访问该环境变量时,我只使用以下命令:echo%ID%,它将显示12345 更新代码 我尝试了这一点,但我仍然无法从命令行使用此命令获取环境变量:echo%ID% [Environment]的第三个参数::SetEnvironmentVariable允许您选择环境变量目标。默认值是当前进程,因此使用两个参数调用只会使变量可用于当前PowerShell会话 如果您

我有12345格式的文本文件。 我想将该值设置为环境变量,这样即使关闭了powershell,我也可以访问它。 我的期望是,当我想从命令行访问该环境变量时,我只使用以下命令:echo%ID%,它将显示12345

更新代码 我尝试了这一点,但我仍然无法从命令行使用此命令获取环境变量:echo%ID%

[Environment]的第三个参数::SetEnvironmentVariable允许您选择环境变量目标。默认值是当前进程,因此使用两个参数调用只会使变量可用于当前PowerShell会话

如果您有权限,可以在计算机级别2启用环境变量,或者:

[Environment]::SetEnvironmentVariable("$Variable", "$file",2)
[Environment]::SetEnvironmentVariable("$Variable", "$file","Machine")
或者,仅针对用户级别1,或者:

[Environment]::SetEnvironmentVariable("$Variable", "$file",1)
[Environment]::SetEnvironmentVariable("$Variable", "$file","User")
“机器级别”是注册表中的HKEY_LOCAL_机器。 “用户级别”是HKEY_当前用户 [Environment]的第三个参数::SetEnvironmentVariable允许您选择环境变量目标。默认值是当前进程,因此使用两个参数调用只会使变量可用于当前PowerShell会话

如果您有权限,可以在计算机级别2启用环境变量,或者:

[Environment]::SetEnvironmentVariable("$Variable", "$file",2)
[Environment]::SetEnvironmentVariable("$Variable", "$file","Machine")
或者,仅针对用户级别1,或者:

[Environment]::SetEnvironmentVariable("$Variable", "$file",1)
[Environment]::SetEnvironmentVariable("$Variable", "$file","User")
“机器级别”是注册表中的HKEY_LOCAL_机器。 “用户级别”是HKEY_当前用户
您需要指定目标环境。默认情况下,该静态方法仅为当前进程设置$Var/值对。您可能希望当前用户使用该方法,因此请使用下面第一个链接中列出的第二种方法,并将目标设置为user。这里是文档页面

Environment.SetEnvironment变量方法系统| Microsoft文档 -

环境变量目标枚举系统| Microsoft文档
-您需要指定目标环境。默认情况下,该静态方法仅为当前进程设置$Var/值对。您可能希望当前用户使用该方法,因此请使用下面第一个链接中列出的第二种方法,并将目标设置为user。这里是文档页面

Environment.SetEnvironment变量方法系统| Microsoft文档 -

环境变量目标枚举系统| Microsoft文档
-

我无法用此解决方案解决:@Job-它与mjsqu提供的完全相同。[grin]只需将所需的第三个参数添加到call-User或1中即可。我已对其进行了更新。但它并没有像我期望的那样起作用。我的期望是,在运行powershell脚本后,我转到cmd并使用此命令echo%ID%,它将显示12345@Lee_Dailey@Job你的cmd开着吗?设置环境变量后,需要关闭并重新打开commandbox。否则它将不会看到更改。@Job-正如Theo所指出的,您当前的环境设置不会因该技术而更改,只会修改该用户/系统的主机。我无法用此解决方案解决:@Job-它与mjsqu提供的相同。[grin]只需将所需的第三个参数添加到call-User或1中即可。我已对其进行了更新。但它并没有像我期望的那样起作用。我的期望是,在运行powershell脚本后,我转到cmd并使用此命令echo%ID%,它将显示12345@Lee_Dailey@Job你的cmd开着吗?设置环境变量后,需要关闭并重新打开commandbox。否则它将不会查看更改。@Job-正如Theo所指出的,您当前的环境设置不会因该技术而更改,只会修改该用户/系统的主机。我更新了代码,这是您的意思吗?但是它仍然没有按照我的预期工作@mjskuyou可能会发现您需要重新启动cmd以使环境变量显示upI更新的代码,这是您的意思吗?但是它仍然不能像我期望的那样工作@mjskuyou可能会发现,您需要重新启动cmd以使环境变量显示更新后的代码现在正在工作。需要先关闭cmd,然后检查环境变量。更新的代码正在运行。需要先关闭cmd,然后检查环境变量。