运行 一次执行两个 cmd 命令?

Running two cmd commands in one go?

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,listsel,0,, Hide
Return
Gives me an error. ==> The following variable name contains an illegal character: ", Hide"

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

我试过完整地引用第二个命令,但 CMD window 似乎只接收到第一个命令。 谢谢。

逗号确实是一个问题,另一个问题是您对 %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) variable contains the path to cmd.exe and the /k switch(docs)表示运行指定命令。
所以,你当然不想指定这些东西两次。命令开头只有一个。 (Run 一个程序 (cmd.exe) 具有指定的参数 (/k, cd, "C:\Program Files\...))

关于逗号,在遗留语法中(你在这里写遗留语法)你需要用`,转义(docs) .

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

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

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

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

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


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

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