微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

一次运行两个 cmd 命令?

如何解决一次运行两个 cmd 命令?

cd "C:\Program Files\GPSoftware\Directory Opus\"

关注

dopusrt.exe /info documents\filelist1.txt,listsel,0

尝试像这样运行它;

2::
Run,%comspec% /k cd "C:\Program Files\GPSoftware\Directory Opus\" && %ComSpec% /k dopusrt.exe /info documents\filelist1.txt,Hide
Return
Gives me an error. ==> The following variable name contains an illegal character: ",Hide"

它认为,第二个 CMD 命令中的逗号是 AHK 参数。

我尝试完整引用第二个命令,但 CMD 窗口似乎只接收第一个命令。 谢谢。

解决方法

逗号确实是一个问题,另一个问题是您对 %comspec% /k 的使用。
现在,您要尝试的是使用 Run(docs) 命令,其中的参数如下:

  • Target = C:\WINDOWS\system32\cmd.exe /k cd "C:\Program Files\GPSoftware\Directory Opus\" && C:\WINDOWS\system32\cmd.exe /k dopusrt.exe /info documents\filelist1.txt
  • WorkingDir = listsel
  • Options = 0
  • OutputVarPID = ,Hide

comspec(docs) 变量包含 cmd.exe 的路径,/k 开关(docs) 表示运行指定的命令。
所以,你当然不想两次指定这些东西。只有一个在命令的开头。 (Run 带有指定参数的程序(cmd.exe)(/kcd"C:\Program Files\...))

关于逗号,在旧语法中(您在此处编写旧语法),您需要使用 `, 将它们转义(docs)

因此,在旧语法中,您完成的命令将如下所示:

Run,%ComSpec% /k cd "C:\Program Files\GPSoftware\Directory Opus\" && dopusrt.exe /info documents\filelist1.txt`,listsel`,Hide

在现代表达式语法中,它看起来像这样:

Run,% A_ComSpec " /k cd ""C:\Program Files\GPSoftware\Directory Opus\"" && dopusrt.exe /info documents\filelist1.txt,listsel,0",Hide

我建议放弃旧语法,开始只编写表达式语法。
Here's 一个文档页面,可帮助您了解旧语法和表达式语法之间的区别(如果您有兴趣)。


但实际上,将 cd 转到 dopusrt.exe 所在的目录的整个方法对我来说似乎很愚蠢。没看出重点。
直接运行dopusrt.exe程序应该没问题吧?

Run,% """C:\Program Files\GPSoftware\Directory Opus\dopusrt.exe"" /info documents\filelist1.txt,Hide

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。