当前位置 : 主页 > 网络推广 > seo >

脚本 – 从批处理调用PowerShell,并检索脚本中设置的临时环境变量的新值?

来源:互联网 收集:自由互联 发布时间:2021-06-16
我希望标题简洁明了,但以防万一: 我从批处理文件中调用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
网友评论