我正在尝试在powershell脚本中安排一个命令来使用Windows调度程序运行.此命令依赖于特定于用户的环境变量,并且由于计划任务无法访问这些变量,因此我决定尝试在powershell脚本本身内部设置变量.
为了在脚本中复制这个,我尝试使用:
$env:DCRCLIFILE = "C:\Users\pzsr7z\Desktop\DCRCLIFILE.txt"
Run Code Online (Sandbox Code Playgroud)
但由于某种原因,当我按照这种方式进行设置时,程序将无法正常工作,即使在使用"普通"用户环境变量运行程序时它完全正常.
在powershell脚本中设置环境变量时,我应该做些什么吗?我不确定为什么这不起作用.我已经验证环境变量实际上已经创建,所以它不像powershell命令失败.
Jam*_* C. 12
$env:DCRCLIFILE = "C:\Users\pzsr7z\Desktop\DCRCLIFILE.txt"
Run Code Online (Sandbox Code Playgroud)
这仅创建一个进程级环境变量,该变量仅对您当前的PowerShell会话可见,并且仅持续.
您需要使用.NET Framework和SetEnvironmentVariable方法设置更永久的环境变量(用户级或机器级):
[Environment]::SetEnvironmentVariable("DCRCLIFILE", "C:\Users\pzsr7z\Desktop\DCRCLIFILE.txt", "User")
Run Code Online (Sandbox Code Playgroud)
我最终通过创建一个单独的批处理文件,然后在其中手动设置 DCRCLIFILE 变量来解决这个问题,之后我从同一个批处理文件中运行 dcrclifile.exe 命令。
我不确定为什么当我尝试在 PowerShell 中手动设置变量时事情无法正常工作。
归档时间: |
|
查看次数: |
7778 次 |
最近记录: |