2010-06-02 85 views
3

我想编写一个批处理文件,该文件将采用文件的内容,并用实际的环境变量值替换文件中的所有环境变量引用。这可能吗?基本上,如果一个文件有这样的:用于替换文件中环境变量的Windows批处理脚本

%PROGRAM FILES%\Microsoft SQL Server\ 

话,我想文件内容变成:

C:\Program Files\Microsoft SQL Server\ 

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

回答

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" 
相关问题