我希望标题简洁明了,但以防万一: 我从批处理文件中调用PowerShell脚本.我希望PowerShell脚本设置环境变量的值,并在PowerShell脚本完成时使该新值在批处理文件中可用. 我知道可以在PowerS
我从批处理文件中调用PowerShell脚本.我希望PowerShell脚本设置环境变量的值,并在PowerShell脚本完成时使该新值在批处理文件中可用.
我知道可以在PowerShell中使用$env设置环境变量,但是当PowerShell脚本终止时,该值不会持久存在.我想这可能是因为PowerShell在一个单独的进程中执行.
我知道我可以返回退出代码并使用%ErrorLevel%,但这只会给我数字,并且会有冲突,因为1表示PowerShell异常而不是有用的数字.
现在,这里需要注意的是:我不希望环境变量持续存在.也就是说,我不希望为用户或系统定义它,因此我希望它在批处理文件退出后立即不可用.最后,我只想将结果从PowerShell脚本传递回调用批处理文件.
这可能吗?
提前致谢 :)
缺口
要获得Keith使用stdout工作的想法,您可以从批处理脚本中调用powershell,如下所示:FOR /F "usebackq delims=" %v IN (`powershell -noprofile "& { get-date }"`) DO set "d=%v"
有点尴尬,但它有效:
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