【问题标题】:open command prompt window and change current working directory打开命令提示符窗口并更改当前工作目录
【发布时间】:2011-01-17 20:07:01
【问题描述】:

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

我正在尝试制作一个可以双击的 .bat 文件,并让它打开命令提示符并自动cd我到某个目录。

我尝试使用 .bat 文件

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

这会打开看起来像命令提示符的地方,但似乎不允许我输入任何命令。

然后我尝试了:

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

但这只是让我进入一个循环,打开大量提示,直到我的计算机崩溃:) 如果重要的话,.bat 文件位于目标目录中。

【问题讨论】:

  • 您的第一个bat 文件不允许您输入的原因是该过程已完成。
  • @Ardman,第一个 .bat 文件在没有 /k 标志的情况下可以正常工作,一旦我将文件重命名为cmd.bat以外的其他名称
  • 顺便说一句,对我的问题感兴趣的人也可能会发现这很有用:在 Windows 资源管理器中,按住 shift 键然后右键单击 - 你会看到一个新选项“在此处打开命令提示符”,它是很棒的酱汁。

标签: windows command-line batch-file


【解决方案1】:

这对我有用:

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

引用的字符串实际上是两个命令(用双&号分隔):第一个命令是切换到指定目录,第二个命令是切换到指定盘符。

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

【讨论】:

  • cd /d C:\my\destination - 一次更改驱动器和目录。
  • 找到这个为我节省了大量的查找时间。这非常适合使用 ANT 的 Salesforce 开发人员
【解决方案2】:

使用 /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 建议的那样:D

【讨论】:

  • 这行得通。事实证明不需要 /k 标志。我之前的尝试失败并让我陷入循环的原因是因为我将 .bat 文件命名为 cmd.bat,并且我使用了 cmd 而不是 cmd.exe(谢谢 google)
  • 我遇到了同样的问题。我还将批处理文件命名为 cmd.bat ,这就是循环原因。解决此问题不需要 /k 选项。这就是我投票支持@chris 评论的原因。
【解决方案3】:

可以这样做:

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

如果您需要在打开 cmd 后执行文件或命令,您可以将最后一行替换为:

cmd.exe /k myCommand

【讨论】:

  • 我想知道 cmd /K 需要为长路径嵌套引号的情况。虽然可能有一种简单的方法来处理这个问题,但这隐含地否定了这个问题。
【解决方案4】:
@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。它更简单! .启动 cmd.exe /K "cd /d C:\my\destination"
【解决方案5】:

为什么这么复杂?只需为 cmd.exe 创建一个别名,右键单击别名并导航到其设置。将“执行在”更改为您想要作为标准路径的路径。它总是从这条路径开始。

【讨论】:

  • 哇,现在你让事情变得太容易了 ;-) 感谢您的提示!
【解决方案6】:

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

start cmd.exe

cd C:\desired path

然后将其保存为 .bat 文件。对我有用。

【讨论】:

    【解决方案7】:

    您可以使用以下语句创建一个批处理文件“go-to-folder.bat”

    rem changes the current directory
    cd "C:\my\destination"
    rem changes the drive if necessary
    c:
    rem runs CMD
    cmd
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-09
      • 2015-12-30
      • 1970-01-01
      • 1970-01-01
      • 2019-08-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多