Пакетный скрипт Windows для замены переменных среды в файле - PullRequest
3 голосов
/ 03 июня 2010

Я хочу написать командный файл, который будет принимать содержимое файла, и заменять любые ссылки на переменные среды внутри файла фактическими значениями переменных среды. Это возможно? В основном, если файл имел это:

%PROGRAM FILES%\Microsoft SQL Server\

тогда я бы хотел, чтобы содержимое файла стало:

C:\Program Files\Microsoft SQL Server\

после запуска пакетного сценария. Это только один пример, но я хочу, чтобы ВСЕ переменные среды были расширены. Заранее спасибо за любую помощь!

1 Ответ

2 голосов
/ 03 июня 2010

Если в системе присутствует 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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...