【问题标题】:How to pass the data from batch file to jython file如何将数据从批处理文件传递到 jython 文件
【发布时间】:2016-10-24 14:03:26
【问题描述】:

我正在尝试将数据从批处理文件传递到 jython 文件,并在创建 webspehere 队列连接工厂时使用。我是这种 Jythn 脚本语言的新手。请帮我解决这个问题。

批处理文件:

@rem create a JMS connection factories call %PROFILE_PATH%\bin\wsadmin -lang jython -f checkconn.jy %NODE_NAME% %SERVER_NAME% %QUEUE_MANAGERNAME% %QUEUE_HOSTNAME% %QUEUE_PORTNUMBER%

所以我将以下值从批处理文件传递到 jython 文件:

以下选项被传递到脚本环境,并可作为存储在 argv 变量中的参数使用:

"[MyServer7Node, MyServer7, QM_BFDC49, 127.0.0.1, 1416]"

我的 Jython 代码:

import sys

nodeName =sys.argv[0]
serverName =sys.argv[1]
queueManagername =sys.argv[2]
queueHostname =sys.argv[3]
queuePort=sys.argv[4]

def createconnectionFactories(nodeName,serverName,queueManagername,queueHostname,queuePort):
      print "Creating connection factories"
      ds = AdminConfig.getid("/Node:"+nodeName+"/Server:"+serverName+"/" )
      print queuePort
      AdminTask.createWMQConnectionFactory(ds,["-name ConnectionFactory -jndiName 'jms/ConnectionFactory' -type CF  -qmgrName '+queueManagername+' -wmqTransportType BINDINGS_THEN_CLIENT -qmgrHostname '+queueHostname+' -qmgrPortNumber '+queuePort+' -qmgrSvrconnChannel SYSTEM.AUTO.SVRCONN"])
      AdminTask.createWMQConnectionFactory(ds,["-name IntegrationConnectionFactory -jndiName 'jms/IntegrationConnectionFactory' -type CF  -qmgrName '+queueManagername+' -wmqTransportType BINDINGS_THEN_CLIENT -qmgrHostname '+queueHostname+' -qmgrPortNumber '+queuePort+' -qmgrSvrconnChannel SYSTEM.AUTO.SVRCONN"])
      AdminConfig.save()

 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Main program
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
createconnectionFactories(nodeName,serverName,queueManagername,queueHostname,queuePort)

当我尝试运行脚本时,我无法为 queueManagername、queueHostname 和 queuePort 插入值。

有人能告诉我如何在 jython 脚本中传递用户输入值吗?

由于 '+queueManagername+' 、 '+queueHostname+' 、 '+queuePort+' 现在在这种情况下工作。

【问题讨论】:

  • 语法高亮表明您实际上并没有尝试将变量插入到字符串中。查看the docs about string formatting 了解如何正确操作的示例
  • 你能告诉我我的情况如何格式化字符串,以便它可以接受 queueManagername、queueHostname 和 queuePort 的值
  • @UnholySheep :我是 Jython 脚本语言的新手
  • 大家好!我能够解决这个问题

标签: python batch-file jython


【解决方案1】:
import sys

nodeName =sys.argv[0]
serverName =sys.argv[1]

def createconnectionFactories(nodeName,serverName):
      print "Creating connection factories"
      ds = AdminConfig.getid("/Node:"+nodeName+"/Server:"+serverName+"/" )
      AdminTask.createWMQConnectionFactory(ds,["-name ConnectionFactory -jndiName 'jms/ConnectionFactory' -type CF  -qmgrName QM_BFDC49 -wmqTransportType BINDINGS_THEN_CLIENT -qmgrHostname 127.0.1.1 -qmgrPortNumber 1416 -qmgrSvrconnChannel SYSTEM.AUTO.SVRCONN"])
      AdminTask.createWMQConnectionFactory(ds,["-name IntegrationConnectionFactory -jndiName 'jms/IntegrationConnectionFactory' -type CF  -qmgrName QM_BFDC49 -wmqTransportType BINDINGS_THEN_CLIENT -qmgrHostname 127.0.1.1 -qmgrPortNumber 1416 -qmgrSvrconnChannel SYSTEM.AUTO.SVRCONN"])
      AdminConfig.save()

 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Main program
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
createconnectionFactories(nodeName,serverName)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-01
    • 2015-08-30
    相关资源
    最近更新 更多