【发布时间】:2016-05-19 18:03:08
【问题描述】:
我想将一个 .exe 文件复制到 /App/Data/Local/Temp 并在之后运行该 exe。而不是添加完整的静态文件路径,我想使用$env:TEMP 不依赖于 ps 内的用户帐户。基于$env:TEMP + .exe 文件,我尝试创建一个新变量$LocalInstall,稍后我可以在 ps 中使用它,但它似乎不起作用。
$LocalInstallFile=$env:TEMP."\Agent.exe"
稍后应该使用$LocalInstallFile 来运行带有安装属性的安装
Invoke-Expression "$LocalInstallFile /DIR=c:\"
我也可以使用
Invoke-Expression "$env:TEMP\Agent.exe"
【问题讨论】:
-
你试过最后一行了吗?它应该可以正常工作...
-
真的,它有效。我只是想知道为什么当我从 Powershell ISE 或 Powershell (AppData/Local/Temp) (AppData/Local/Temp/1) 运行 $env:TEMP 时会得到不同的路径?这就是为什么它不起作用
-
你不应该得到不同的结果,除非你像
$env:temp += "\1"那样修改它(只会在那个控制台/进程中修改它)。无法重现 -
我也没想到。好像和虚拟机有关,虽然我没修改过。
标签: powershell environment-variables powershell-3.0