打开命令提示符,更改目录并执行命令

4

我正在尝试编写一个简单的批处理文件,在Windows启动时初始化我需要的一些工具。 目前我的脚本如下:

@echo off
start /d "C:\Program Files\Sublime Text 3" sublime_text.exe
start cmd.exe /k cd /d "D:xampp/htdocs/webshop"

我想要做的是在目录更改后执行compass watch命令。
我尝试了start cmd.exe /k cd /d "D:xampp/htdocs/webshop" /k "compass watch",但它会引用cd命令,因此会抛出错误消息(系统找不到指定的路径)。
有什么建议吗?
编辑:
为了澄清我的需求:
1.打开控制台
2.cd到相关目录
3.执行compass watch命令(在该目录中)
我通常通过手动在控制台中输入上述命令来完成此操作。我想要的是一个简单的.bat文件,只需单击一下即可完成这些操作。

我无法解决如何转义引号并处理空格。为什么需要“cmd.exe /k”?难道你不能在原始解释器实例中完成所有操作吗? - David Heffernan
如果使用初始解释器实例是可行的,那就好了。我已经尝试过了,但它会立即关闭,指南针监视命令需要一直运行,而不仅仅是运行一次。 - damian
这是什么指南针手表?控制台应用程序?GUI 应用程序? - David Heffernan
http://compass-style.org/ 是一个 Ruby 宝石。它可以在运行时将 Sass 编译为 CSS,因此需要一直运行... - damian
如果是GUI程序,则关闭控制台不会杀死它。如果是控制台应用程序,则应该永远运行,命令脚本永远不会返回。所以我不明白问题在哪里。原始进程是否启动了一个单独的进程? - David Heffernan
显示剩余2条评论
4个回答

5

您在评论中提到不需要单独的解释器。在这种情况下,我认为您可以这样做:

@echo off
start /d "C:\Program Files\Sublime Text 3" sublime_text.exe
start /d D:\xampp\htdocs\webshop compass watch

这确实打开了控制台并更改了目录,但compass watch命令没有出现/执行... - damian
那对我来说调试会很困难。那一定是你系统的问题。 - David Heffernan
没有双引号就可以工作了! start /d D:\xampp\htdocs\webshop compass watch 你能更新你的答案让我能接受它吗? - damian
完成。虽然我不太明白为什么它会这样工作。在命令提示符中引用是一场噩梦!我在想,是指南针是 gem,而 watch 是参数吗? - David Heffernan
是的,看起来就是这样。 - David Heffernan

0

这是一个打开Firefox.exe的示例。所以你应该像这样为你的程序做。

@echo off
echo Try to open Firefox ....
CD /D %programfiles%\Mozilla Firefox\ & Start Firefox.exe
Pause

试试这个:

@echo off
CD /D %programfiles%\Sublime Text 3 & Start sublime_text.exe
CD /D D:\xampp/htdocs/webshop & Start compass watch
Pause

我能够打开一个程序,但我需要执行命令行工具中的命令。 - damian

0

你必须在路径中使用反斜杠 "\"。你试过了吗:

@echo off
"C:\Program Files\Sublime Text 3\sublime_text.exe"
cd /d "D:\xampp\htdocs\webshop"
"D:\xampp\htdocs\webshop\compass watch.exe"

据我所知,使用反斜杠与否并不重要。而且Compass Watch不是可执行文件,而是一个命令。 - damian

0

这应该可以启动exe,并更改文件夹,然后使用cmd /k来执行罗盘命令并保持控制台打开。

@echo off
start "" /d "C:\Program Files\Sublime Text 3" sublime_text.exe
cd /d "D:xampp/htdocs/webshop"
cmd.exe /k "compass watch"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接