wsadmin 打印结果,每行一个字符

wsadmin printing results with a single character per line

我试图将某些 wsadmin 命令的输出用于其他命令,但是,当我遍历输出时,它似乎每行打印一个字符,这会破坏我的其他命令。我需要添加什么才能使其不每行打印一个字符。

cell_name = AdminControl.getCell()
# Get the DMGR Complete Object Name
dmgr_object_name =  AdminControl.completeObjectName('WebSphere:name=DeploymentManager,type=DeploymentManager,mbeanIdentifier=DeploymentManager,*')
# Get the full Application Manager string. 
appManager = AdminControl.queryNames('cell=' + cell_name + ',type=ApplicationManager,*')

for jvm in appManager :
  print( jvm )

答案是导入 Java lineseparator

# get line separator
import  java.lang.System  as sys
lineSeparator = sys.getProperty('line.separator')
# Get the Cell Name
cell_name = AdminControl.getCell()
# Get the DMGR Complete Object Name
dmgr_object_name =  AdminControl.completeObjectName('WebSphere:name=DeploymentManager,type=DeploymentManager,mbeanIdentifier=DeploymentManager,*')
# Get the full Application Manager string. 
appManager = AdminControl.queryNames('cell=' + cell_name + ',type=ApplicationManager,*').split(lineSeparator)

这样就可以正确拆分结果。

添加一个补充@Pred 方法的答案,以及一些额外的解释。

澄清一下,查询 AdminControl.queryNames('cell=RandomCell1,type=ApplicationManager,*') returns 一个 string 对象,如下所示:

'WebSphere:name=ApplicationManager,process=server1,platform=proxy,node=Node1,version=8.5.5.5,type=ApplicationManager,mbeanIdentifier=ApplicationManager,cell=RandomCell1,spec=1.0\nWebSphere:name=ApplicationManager,process=dmgr,platform=proxy,node=Dmgr,version=8.5.5.5,type=ApplicationManager,mbeanIdentifier=ApplicationManager,cell=RandomCell1,spec=1.0'

因此,使用 for 循环遍历上述字符串会依次打印每个字符。

在上面的字符串中,每个条目都由 \n(换行符)字符分隔。因此,将字符串拆分为 \n 字符。

AdminControl.queryNames('cell=RandomCell1,type=ApplicationManager,*').split('\n')

这个returns一个字符串列表,每个字符串是一个条目对应一个对象。然后列表如下所示:

['WebSphere:name=ApplicationManager,process=server1,platform=proxy,node=Node1,version=8.5.5.5,type=ApplicationManager,mbeanIdentifier=ApplicationManager,cell=RandomCell1,spec=1.0', 'WebSphere:name=ApplicationManager,process=dmgr,platform=proxy,node=Dmgr,version=8.5.5.5,type=ApplicationManager,mbeanIdentifier=ApplicationManager,cell=RandomCell1,spec=1.0']

遍历列表 returns 每个条目作为一个完整的字符串。