【问题标题】:How to set environment variables in a PowerShell script defined in a configuration file?如何在配置文件中定义的 PowerShell 脚本中设置环境变量?
【发布时间】: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

【问题讨论】:

    标签: powershell for-loop batch-file call


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2015-10-04
      • 2020-09-29
      • 1970-01-01
      • 1970-01-01
      • 2019-10-24
      • 2012-01-12
      • 1970-01-01
      • 2011-11-26
      • 2016-10-03
      相关资源
      最近更新 更多