Nic*_*ill 8 variables environment powershell scripting batch-file
我希望标题简洁明了,但以防万一:
我从批处理文件中调用PowerShell脚本.我希望PowerShell脚本设置环境变量的值,并在PowerShell脚本完成时使该新值在批处理文件中可用.
我知道可以在PowerShell中使用$ env设置环境变量,但是当PowerShell脚本终止时,该值不会保留.我想这可能是因为PowerShell在一个单独的进程中执行.
我知道我可以返回退出代码并使用%ErrorLevel%,但这只会给我数字,并且会有冲突,因为1表示PowerShell异常而不是有用的数字.
现在,这里需要注意的是:我不希望环境变量持续存在.也就是说,我不希望为用户或系统定义它,因此我希望它在批处理文件退出后立即不可用.最后,我只想将结果从PowerShell脚本传递回调用批处理文件.
这可能吗?
提前致谢 :)
缺口
zda*_*dan 10
要获得Keith使用stdout工作的想法,您可以从批处理脚本中调用powershell,如下所示:
FOR /F "usebackq delims=" %v IN (`powershell -noprofile "& { get-date }"`) DO set "d=%v"
Run Code Online (Sandbox Code Playgroud)
有点尴尬,但它有效:
C:\>FOR /F "usebackq delims=" %v IN (`powershell -noprofile "& { get-date }"`) DO set "d=%v"
C:\>set d
d=August 5, 2010 11:04:36 AM
Run Code Online (Sandbox Code Playgroud)
Kei*_*ill -2
从 PowerShell 捕获结果的最直接方法是在 PowerShell 中使用 stdout。例如,这会将日期保存到 cmd.exe 中的 d env var
set d = powershell -noprofile "& { get-date }"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11705 次 |
最近记录: |