用于在目录中的cmd中运行命令的批处理文件

nom*_*ian 18 batch-file

我想要一个批处理文件(必须放在桌面上),它执行以下操作;

  • 打开cmd
  • 导航到目录,例如 C:\activiti-5.9\setup
  • 在目录中运行命令,例如ant demo.start(此命令运行activiti服务器)

我尝试了以下内容到达目录,但如何运行命令,"ant demo.start"

START cmd.exe /k "cd C:\activiti-5.9\setup"
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助.

编辑:

请参阅下面的zb226答案:如果你能回答我的另一个问题是如何让cmd以管理员身份运行?以下工作会怎样?

START cmd /K "runas /user:administrator & cd C:\activiti-5.9\setup & ant demo.start"

zb2*_*226 27

链式任意命令使用&如下:

command1 & command2 & command3 & ...
Run Code Online (Sandbox Code Playgroud)

因此,在您的特定情况下,将此行放在桌面上的批处理文件中:

START cmd.exe /k "cd C:\activiti-5.9\setup & ant demo.start"
Run Code Online (Sandbox Code Playgroud)

您也可以使用&&链接命令,虽然这将执行错误检查,如果其中一个命令失败,执行链将中断.该行为是详细这里.

编辑:感谢@James K的评论"你可以链接命令,但它们没有任何效果",我测试了一些更令我惊讶的发现,我在原始测试中开始的程序firefox.exe- 虽然不存在于PATH环境变量中的目录,实际上可以在我的系统上的任何地方执行(这真让我感到惊讶 - 请参阅答案的底部以获得解释).所以实际上执行......

START cmd.exe /k "cd C:\progra~1\mozill~1 && firefox"
Run Code Online (Sandbox Code Playgroud)

......没有证明解决方案有效.所以我确定它在我的系统上的任何地方都不可执行后选择了另一个程序(nLite):

START cmd.exe /k "cd C:\progra~1\nlite && nlite"
Run Code Online (Sandbox Code Playgroud)

这就像我原来的答案已经提出的那样有效.问题中没有给出Windows版本,但我使用的是Windows XP,顺便说一句.


如果有人感兴趣,为什么firefox.exe,虽然不在,但是PATH在我的系统上的任何地方都可执行 - 而且很可能在你的系统上 - 这是由于注册表项可以注册应用程序随处可用.有关详细信息,请参阅此SU答案


nom*_*ian 12

对我来说,以下是工作和运行activiti服务器以及在浏览器中打开资源管理器(借助zb226的答案和评论);

START "runas /user:administrator" cmd /K "cd C:\activiti-5.9\setup & ant demo.start"

START /wait localhost:8080/activiti-explorer


Ste*_*han 5

这个问题是5岁.我想知道为什么还没有人找到/d 设置工作文件夹的开关:

start /d "c:\activiti-5.9\setup" cmd /k ant demo.start
Run Code Online (Sandbox Code Playgroud)