gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 08:03:11 27 4
gpt4 key购买 nike

我希望标题简洁,但以防万一:

我正在从批处理文件调用 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

关于scripting - 从批处理中调用 PowerShell,并检索脚本中设置的临时环境变量的新值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3414300/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com