Eri*_*c W 12 powershell environment-variables
我有一个PowerShell脚本,它检查某个目录是否在PATH上(通过查看$ env:path).看起来$ env:path在启动时被每个应用程序加载并本地作用域,并且该作用域被传递给任何子应用程序.所以...如果有人打开Firefox,下载我的程序,运行它,得到一条消息,他们应该改变路径,修复问题,然后再从Firefox下载窗口运行程序,他们会得到相同的消息,除非他们从资源管理器启动我的程序或重启Firefox.
有没有办法在我的PowerShell脚本中重新加载$ env:path,这样它就会得到当前值,好像它是从资源管理器打开的?
如果您在浏览器的上下文之外运行,我会告诉您使用
[System.Environment]::SetEnvironmentVariable(string name, string value, EnvironmentVariableTarget target)
Run Code Online (Sandbox Code Playgroud)
更改用户的Path变量.第三个参数允许您指定Process,User或Machine.如果您指定用户或计算机,则更改是永久性的,并且将显示在之后启动的所有程序的env块中.但是,由于您在浏览器中运行,我认为您无法做到这一点.
如果用户更改其路径,则该更改将可用于将来的浏览器实例.另一种选择是Get-Command
在路径中测试您需要的应用程序(),如果找不到它,请$env:Path
在每次运行时在脚本中进行修改.也就是说,除非你不知道路径应该是什么.
归档时间: |
|
查看次数: |
6198 次 |
最近记录: |