Windows批处理脚本replace文件中的环境variables

我想编写一个batch file,将文件的内容,并用实际的环境variables值replace文件内的任何环境variables引用。 这可能吗? 基本上,如果一个文件有这个:

%PROGRAM FILES%\Microsoft SQL Server\ 

那么我想要的文件内容成为:

 C:\Program Files\Microsoft SQL Server\ 

批处理脚本运行后。 这只是一个例子,但是我想要扩展所有的环境variables。 提前感谢任何帮助!

如果系统上有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"