打开命令提示符窗口并更改当前工作目录

43

我对在Windows上编写脚本非常陌生。使用的是Windows 7 64位。

我试图创建一个.bat文件,双击后能打开命令提示符并自动将我cd到某个目录。

我尝试用以下内容创建了一个.bat文件:

@ECHO OFF
cmd "cd C:\my\destination"

打开后看起来像是一个命令提示符,但似乎无法输入任何命令。

接下来我尝试了:

@ECHO OFF
start cmd "cd C:\my\destination"

但是这让我陷入了一个循环,不停地打开提示框,直到我的电脑崩溃 :) 如果需要的话,.bat文件位于目标目录中。


2
你的第一个 bat 文件无法让你输入的原因是该进程已经完成。 - Neil Knight
@Ardman,第一个 .bat 文件在没有 /k 标志的情况下正常工作,一旦我将文件重命名为除 cmd.bat 之外的其他名称。 - goat
顺便说一下,对我问题感兴趣的人也可能会发现这个有用:在Windows资源管理器中,按住Shift键然后右键单击-您将看到一个新选项,“在此处打开命令提示符”,是非常棒的。 - goat
7个回答

82

这个对我有效:

@ECHO OFF
cmd.exe /K "cd C:\my\destination && C:"

引号内的字符串实际上是两个命令(由双和号分隔):第一个命令是切换到指定目录,第二个命令是切换到指定的驱动器。

将其放入批处理(.BAT)文件中,当您执行它时,您应该会在指定目录看到一个命令提示符窗口。


15
或者cd /d C:\my\destination——一步到位改变驱动器和目录。 - Nigel Touch
1
通过找到这个,它为我省去了大量的查找。对于使用ANT的Salesforce开发人员来说,这非常棒。 - booky99

11

使用/K开关:

@ECHO OFF
start cmd.exe /K "cd C:\my\destination"

但是在我看来,最有用的开关是/?

Starts a new instance of the Windows XP command interpreter

CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF]
    [[/S] [/C | /K] string]

/C      Carries out the command specified by string and then terminates
/K      Carries out the command specified by string but remains
/S      Modifies the treatment of string after /C or /K (see below)
/Q      Turns echo off
...

只有在它不起作用的情况下,才像@Neeraj建议的那样Google一下:D


2
这个有效。原来不需要/k标志。我之前尝试失败并陷入循环的原因是因为我将我的.bat文件命名为cmd.bat,并且我使用了cmd而不是cmd.exe(谢谢Google)。 - goat
1
我也遇到了同样的问题。我把批处理文件命名为cmd.bat,这就是循环的原因。不需要使用/k选项来解决此问题。这就是为什么我投票支持@chris评论的原因。 - Wilson Freitas

5
这可以这样实现:
@ECHO OFF
cd /D "C:\my\destination"
cmd.exe

如果你需要在打开命令提示符后执行文件或命令,只需将最后一行替换为:
cmd.exe /k myCommand

我在思考关于 cmd /K 的情况,其中你需要为长路径嵌套引号。虽然可能有一种简单的方法来处理它,但这个方法隐含地消除了这个问题。 - BuvinJ

3
@ECHO OFF
%comspec% /K "cd /D d:\somefolder"

/D可以改变文件夹和驱动器,适用于2000+(不确定NT4是否适用)。
如果您查看Vista的打开命令,它使用cmd.exe /s /k pushd \"%V\",但我认为%V没有被记录。如果您的路径是UNC(\\server\share\folder),使用pushd是一个好主意。要使UNC当前目录正常工作,您可能需要设置DisableUNCCheck注册表项...

+1 对于 /d。我也经常使用 /d。它更简单!执行 start cmd.exe /K "cd /d C:\my\destination"。 - codea

2

为什么这么麻烦呢?只需创建一个cmd.exe的别名,右键单击该别名并转到其设置。将“执行位置”更改为您想要作为标准路径的路径。它将始终从此路径开始。


哇,现在你让事情变得太容易了;-) 谢谢你的提示! - mechanical_meat

0
你可以创建一个批处理文件"go-to-folder.bat",其中包含以下语句:
rem changes the current directory
cd "C:\my\destination"
rem changes the drive if necessary
c:
rem runs CMD
cmd

0

只需打开文本编辑器并输入

start cmd.exe

cd C:\desired path

然后将其保存为 .bat 文件。对我来说有效。


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