用于替换文件中环境变量的Windows批处理脚本

3

我希望编写一个批处理文件,可以获取文件的内容,并将其中任何环境变量引用替换为实际的环境变量值。这可行吗?基本上,如果一个文件包含了这样的内容:

%PROGRAM FILES%\Microsoft SQL Server\

然后我希望文件内容变成:
C:\Program Files\Microsoft SQL Server\

批处理脚本运行后。这只是一个例子,但我希望所有环境变量都被扩展。非常感谢您的帮助!
1个回答

2
如果系统上有PowerShell,您可以执行以下操作:
powershell -command "get-content 'input.txt' | foreach { [System.Environment]::ExpandEnvironmentVariables($_) } | set-content -path 'output.txt'"

以下内容适用于普通批处理文件,但输出中的空行将被删除。
@echo off
goto :start

:expand
echo %~1 >> output.txt
goto:eof

:start
echo. > output.txt
for /f "delims=" %%i in (input.txt) do call:expand "%%i"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接