Я пытаюсь увидеть, можно ли прочитать строки из файла в командном окне, а затем записать их обратно в файл. Сложность в том, что в любом месте файла, где есть текст, напоминающий переменную, я бы хотел, чтобы он был расширен.
Идея состоит в том, чтобы иметь файл мастер-пакета, в котором я устанавливаю переменные, затем считываю файл по умолчанию и заменяю переменные значениями из мастера.
Содержание файла
################################################################################
#
# Response file
#
################################################################################
################################################################################
#
# License Acceptance
#
# If you accept the license, <value> should be "true".
#
LICENSE_ACCEPTED=true
################################################################################
#
# Server host name
#
# The server host name. Server name should be FQDN
#
SERVER_HOSTNAME=%SERVER_HOSTNAME%
################################################################################
#
# Install user name
#
INSTALL_USER_NAME=%INSTALL_USER_NAME%
################################################################################
#
# Create user or not
#
# true: create new user
# false: do not create new user. use existing user
#
CREATE_USER=false
Мой вывод для строки INSTALL_USER_NAME будет INSTALL_USER_NAME = USER
Проблема в том, что переменные, кажется, не раскрываются, когда они считываются и выводятся в файл.
ОБНОВЛЕНИЕ: решение, указанное ниже
SETLOCAL ENABLEDELAYEDEXPANSION
for /F "delims=" %%a in (E:\TEMP\WindowsAdditionalServer.properties) do (
call echo %%a>>"E:\TEMP\BASE.properties"
)