你会怎么做呢?
我有一个包含大约40行的文件,每行是.exe文件的变量 我已经设置了一个外国命令
$ CC := "$something$something:file.exe"
然后我尝试逐行遍历文件
{方法1}
$ 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 。正如您在下面看到的,如果对方法1的想法很重要,则2-4需要使用双引号。
{方法2}
$ CC variable1 "variable2" "variable3" "variable4"
我最终需要做的是同时运行大约10个,所以我想如果我能让方法2工作最好。
答案 0 :(得分:2)
我不确定我是否完全理解你想要实现的目标。根据我的阅读,我想要一个文本文件(file.txt),如
This
That
"Quoted"
"Quoted blank"
" "
This and that
"This and" "that"
编写命令程序(echo.com),如
$ 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
运行时给出:
$ @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
只是为了显示文件中实际读取的内容;符号内容用双引号引用。
这或多或少是你所拥有的,除了$ CC 'b'
,其中单引号告诉dcl扩展符号b。阅读后关闭输入文件并不是一个坏主意。
不,没有必要DEFINE
任何东西。对于外来命令,您不必拥有.exe
,这是默认设置。
答案 1 :(得分:0)
我能够通过定义CC然后使用方法2来调用每一行
来使其工作DEFINE CC $something$something:file.exe;