命令清除批处理文件中的环境

时间:2016-08-20 01:28:58

标签: windows batch-file glassfish

我是批处理文件的新手,所以如果我在这里没有使用正确的术语,请原谅我。

我有一个批处理文件,需要从我列出的所有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)的某种限制?

1 个答案:

答案 0 :(得分:1)

尝试

#tab-1 {
  display: block;
}
[id^="tab"]:not(#tab-1) {
  display: none;
}