命令清除批处理文件中的环境
Command clears environment in batch file
我是批处理文件的新手,所以如果我在这里使用的术语不正确,请原谅我。
我有一个批处理文件需要从我列出的所有 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命令后"losing the state"。
asadmin --host localhost --port !port! undeploy app
为清楚起见,asadmin.bat 是 Glassfish 的命令行工具。
如果我从文件中删除这个 line/command,循环会使用延迟扩展很好地执行字符串提取。这是这种情况下的结果输出:
Undeploying app on domain domainA 4841
Undeploying app on domain domainB 4842
"losing state" 我的意思是变量不再获得正确的值。在执行第一个 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.
那么问题来了,在这些命令执行后,有没有办法避免"losing the script state"呢?或者这是该工具(asadmin)的某种限制?
尝试
cmd /C "asadmin --host localhost --port !port! undeploy appName"
我是批处理文件的新手,所以如果我在这里使用的术语不正确,请原谅我。
我有一个批处理文件需要从我列出的所有 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命令后"losing the state"。
asadmin --host localhost --port !port! undeploy app
为清楚起见,asadmin.bat 是 Glassfish 的命令行工具。
如果我从文件中删除这个 line/command,循环会使用延迟扩展很好地执行字符串提取。这是这种情况下的结果输出:
Undeploying app on domain domainA 4841
Undeploying app on domain domainB 4842
"losing state" 我的意思是变量不再获得正确的值。在执行第一个 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.
那么问题来了,在这些命令执行后,有没有办法避免"losing the script state"呢?或者这是该工具(asadmin)的某种限制?
尝试
cmd /C "asadmin --host localhost --port !port! undeploy appName"