首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dcl使用外部命令执行程序

dcl使用外部命令执行程序
EN

Stack Overflow用户
提问于 2013-03-06 23:16:30
回答 2查看 228关注 0票数 1

你会怎么做呢?

我有一个大约包含40行的文件,每行都是一个.exe文件的变量。

我设置了一个外国指挥部

代码语言:javascript
复制
$ CC := "$something$something:file.exe"

然后,我尝试逐行遍历文件。

{Method1}

代码语言:javascript
复制
$ OPEN a file.txt
$ loop:
$ READ/END_OF_FILE:end a b
$ CC b
$ goto loop
$ end:

我的问题是因为b的值包含引号(“"),所以file.exe不会执行

我还尝试将CC放在file.txt的每一行的开头(如下所示),并像上面一样一次运行每一行,但它给出了一个错误,即它无法从默认位置运行CC.exe。正如你在下面看到的,变量2-4需要用双引号引起来,如果这对方法1的想法很重要。

{方法2}

代码语言:javascript
复制
$ CC variable1 "variable2" "variable3" "variable4"

最后我需要做的是一次运行其中的10个,所以我认为如果我能让方法2工作,那将是最好的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-07 01:32:26

我不确定我是否完全理解你想要实现的目标。根据我所读到的内容,我会选择一个文本文件(file.txt),比如

代码语言:javascript
复制
This
That
"Quoted"
"Quoted blank"
" "
This and that
"This and" "that"

编写一个命令过程(echo.com),比如

代码语言:javascript
复制
$ cc:=$sys$disk:[]echo
$ OPEN a file.txt
$ loop:
$ READ/END_OF_FILE:end a b
$ show symb b
$ CC 'b'
$ goto loop
$ end:
$ CLOSE a

它在运行时提供了:

代码语言:javascript
复制
$ @echo
  B = "This"
arg1: 'this'
  B = "That"
arg1: 'that'
  B = ""Quoted""
arg1: 'Quoted'
  B = ""Quoted blank""
arg1: 'Quoted blank'
  B = "" ""
arg1: ' '
  B = "This and that"
arg1: 'this'
arg2: 'and'
arg3: 'that'
  B = ""This and" "that""
arg1: 'This and'
arg2: 'that'
$

其中,echo.exe只是一个打印argv的简单C程序,从参数1开始,并用单引号引起来;而$ show symb b只是显示从文件中实际读取的内容;符号内容用双引号引起来。

这或多或少是您所拥有的,除了单引号告诉dcl展开符号b的$ CC 'b',并且在读取输入文件之后关闭它也不是一个坏主意。

不,没有必要DEFINE任何东西。对于外部命令,您不必拥有.exe,这是默认设置。

票数 2
EN

Stack Overflow用户

发布于 2013-03-07 00:25:09

我能够通过定义CC,然后使用方法2来调用每一行,从而使其正常工作

代码语言:javascript
复制
DEFINE CC $something$something:file.exe;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15251091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档