【问题标题】:Vb.net exe that works when double clicked, but not when run by jclVb.net exe在双击时有效,但在由jcl运行时无效
【发布时间】:2023-03-16 23:36:01
【问题描述】:

我有一个 VB.net 应用程序,它导入一个名为 resource_NAMEOFEXE.txt 的文件,当我的流阅读器仅将“resource_NAMEOFEXE.txt”作为位置时,它假定为本地的,我猜测,并在用户运行时正确读取文件。

然后我尝试运行应该运行 exe 的 jcl 作业,但程序无法自动找到本地路径。所以我尝试将本地路径硬编码到 exe 本身中,并且 jcl 运行和用户都运行正确导入的程序。注意:jcl在大型机上,exe在服务器上。

  //SFARENAM EXEC P2CUCMD                                          
  //SCRIPT   DD *                                                  
  "\\<serverName>\$APPLE\testAndRename.exe"     
  /*                                                               
  //UCMDOPT  DD DISP=SHR,DSN=IC.D2C.UCMDOPT.FILE(UZAO0001)         
//SYSIN    DD *                                                  
 -s       SCRIPT                                                 
   -host    <servername>                        
 -userid  <userid>                                      
 -script  SCRIPT                                                 
 -x       UCMDOPT                                                
 /*                                                               
//SYSOUT   DD  SYSOUT=*                                          
 //SYSPRINT DD  SYSOUT=*                                          
 //   

这可能是 JCL 问题,还是我应该以特殊方式格式化 vb.net 位置以询问本地 exe 位置。

【问题讨论】:

  • 听起来应用程序只是在当前的“工作目录”中查找运行它的 shell 上下文。当“双击”它时,该工作目录是当前目录,我猜这是文件所在的位置。在编写脚本时,该脚本的 shell 上下文的工作目录可以是任何东西。我建议应用程序默认为它当前的默认值,但接受一个命令行参数来指定文件(覆盖默认值)。然后,应用程序的任何脚本都可以在需要时提供该参数。
  • 什么是 P2CUCMD?这不是我熟悉的 IBM 分布式 proc。我们需要的最重要的东西是什么是 PGM= 以及这是什么产品。 David 可能也在正确的道路上,因为当通过 BPXBATCH 执行脚本时,可能会出现当前目录问题,此时 RACF HOME 设置可以发挥作用。

标签: vb.net vbscript directory jcl


【解决方案1】:

在调用.exe文件时尝试使用本地路径而不是网络路径。

例如,而不是:

\\\serverName\$APPLE\testAndRename.exe

用途:

C:\something\somewhere\testAndRename.exe

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-11
    • 2019-07-19
    • 1970-01-01
    • 2011-02-15
    相关资源
    最近更新 更多