Я новичок в пакетных файлах, поэтому, пожалуйста, простите меня, если я не использую правильную терминологию здесь.Команда очищает среду в пакетном файле
У меня есть пакетный файл, который необходимо развернуть одно конкретное приложение из всех моих перечисленных доменов Glassfish. Вот код:
@echo off
setlocal EnableDelayedExpansion
set glassfishDomains=domainA4841,domainB4842
for /d %%a in (%glassfishDomains%) do (
set fullDomain=%%a
set port=!fullDomain:~-4!
set domain=!fullDomain:~0,-4!
echo Undeploying appName on domain !domain! !port!
asadmin --host localhost --port !port! undeploy appName
echo.
)
Проблема заключается в том, что она «теряет состояние» после того, как команды asadmin выполняется в первый раз.
asadmin --host localhost --port !port! undeploy app
Для удобства использования asadmin.bat является инструментом командной строки Glassfish.
Если я удалю эту строку/команду из файла, цикл отлично выполняет извлечение строки, используя задержку расширения. Это результирующий результат в этом случае:
Undeploying app on domain domainA 4841
Undeploying app on domain domainB 4842
«Потерянное состояние» Я имею в виду, что переменные больше не получают правильных значений. После первого выполнения команды asadmin, я начинаю этот результат:
Undeploying appName on domain domainA 4841
Command undeploy executed successfully.
D:\>(
set fullDomain=domainB4842
set port=!fullDomain:~-4!
set domain=!fullDomain:~0,-4!
echo Undeploying appName on domain !domain! !port!
asadmin --host localhost --port !port! undeploy appName
echo.
)
domainB4842
Undeploying appName on domain !domain! !port!
CLI136: Port !port! should be a numeric value.
Command --host failed.
Таким образом, вопрос, есть ли способ избежать «потери состояния сценария» после того, как эти команды выполняют? Или это какое-то ограничение от этого инструмента (asadmin)?
@Mofi Я просто отредактировал мой вопрос уточнить вещи, которые вы задаете о. Использование call asadmin работает. Благодарю. – carlossierra
@Mofi обе работали: 'call asadmin ...' и предложение, сделанное smead. Я просто заметил ответ Smead как принятый. Я открою еще один вопрос, чтобы спросить, есть ли разница между этими двумя подходами, поскольку мне непонятно, почему они оба работают, и если есть какие-то важные различия. Благодарю. – carlossierra