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

如何在配置文件中定义的PowerShell脚本中设置环境变量?,powershell,for-loop,batch-file,call,Powershell,For Loop,Batch File,Call,我有一个简单的批量偏好系统。 蝙蝠将.ini重命名为.bat并调用它。 .ini中的变量或选项将以这种方式初始化。 所以我可以用它来创建一个多语言批处理文件。 现在我开始学习PowerShell。我想有同样的功能 我的文件: MyFile.bat-初始化ini并制作一些其他内容…: ren User-Generated\preferences.ini preferences.bat call User-Generated\preferences.bat ren User-Generated\pr

我有一个简单的批量偏好系统。 蝙蝠将.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中使用

要调用bat脚本,可以使用

$env:locale="de"
$env:cancelled="true"
$env:firstrun="false"
& 'cmd.exe' @('/c', 'call', 'LoadPreferences.bat')