如何在配置文件中定义的 PowerShell 脚本中设置环境变量?

Posted

技术标签:

【中文标题】如何在配置文件中定义的 PowerShell 脚本中设置环境变量?【英文标题】:How to set environment variables in a PowerShell script defined in a configuration file? 【发布时间】:2021-07-07 09:25:06 【问题描述】:

我有一个简单的批量偏好系统。 bat 将 .ini 重命名为 .bat 并调用它。 .ini 中的变量或选项将以这种方式初始化。 所以我可以用它来创建一个多语言的批处理文件。 现在我开始学习 PowerShell。我想要同样的功能。

我的文件:

MyFile.bat - 初始化 ini 并制作一些其他东西...:

ren User-Generated\preferences.ini preferences.bat
call User-Generated\preferences.bat
ren User-Generated\preferences.bat preferences.ini
echo Your language is %locale%.
...

这里有preferences.ini - 在她里面,保存了所有选项,例如。语言:

set locale=de
set cancelled=true
set firstrun=false

现在我可以为 PowerShell 创建相同的preferences.ini:

$locale="de"
$cancelled="true"
$firstrun="false"

我的问题:

我需要使用 PowerShell 脚本调用 ini。 该怎么做?

@mofi 写道,我们也可以用这个 for 循环来实现:

for /F "usebackq delims=" %%I in ("%~dp0User-Generated\preferences.ini") do set "%%I"

但是如何将其“转换”为 PowerShell?

感谢您的帮助!

JJB

【问题讨论】:

【参考方案1】:

您使用set 定义了一些环境变量。 您可以在 PowerShell 中使用 $env 执行相同的操作。

$env:locale="de"
$env:cancelled="true"
$env:firstrun="false"

要调用您的 bat 脚本,您可以使用 call operator。

& 'cmd.exe' @('/c', 'call', 'LoadPreferences.bat')

【讨论】:

以上是关于如何在配置文件中定义的 PowerShell 脚本中设置环境变量?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用PowerShell替换文件中的多个字符串

如何将 .bat 文件中的变量导入 PowerShell 脚本?

配置 electron-builder 运行 powershell 脚本

Powershell 远程配置文件

用于本地文件的 Azure 自定义脚本扩展 CLI/Powershell

powershell 我的示例Powershell配置文件脚本