BAT文件在当前目录中打开CMD

我有很多脚本,我从命令行进行交互。 每次我需要使用它们时,我都必须打开一个命令行窗口,将+粘贴和CD复制到它们所在目录的path中。这是很乏味的(它们在相当深的文件系统中,所以input完整path是一种痛苦,复制+粘贴更好,但不是太多)。 我试图创build一个.BAT文件,我可以双击这将打开一个新的命令行窗口的.bat文件存在的文件夹中,但它不起作用。 它会打开一个新窗口,但工作目录不是.bat文件所在的目录。下面是我经过多次search后得到的结果(我的cmd技能不是很好):

cd %CD% cmd.exe 

我知道,从我使用Linux的时候,Konqueror有一个“命令行窗口在这里”function,这就是我想要在Windows上的效果。

使用以下几行创build一个名为open_dos_here.cmd的文件:

 %~d1 cd "%~p1" call cmd 

把这个文件放在任何文件夹中。 然后,转到您的“发送至”文件夹( Win + E ; Alt + D ; shell:sendto ; Enter )。 创build一个指向这个open_dos_here.cmd的快捷方式

然后,在任何文件夹中,select任何文件或子文件夹。 右键单击并select“发送到”,然后selectopen_dos_here.cmd以打开该文件夹中的DOS。

你可能想这样做:

 cd /d %~dp0 cmd.exe 

这会将你当前的目录设置到你拥有batch file的目录

您可以在资源pipe理器的地址栏中inputcmd ,然后在该path中启动。 同样适用于PowerShell。

作为更一般的解决scheme,您可能需要查看Microsoft Power Toy for XP,在右键单击时添加“在此打开命令窗口”选项: http : //www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys .mspx

在Vista和Windows 7中,如果按住shift并右键单击(这是内置的),您将获得该选项。

还有更简单的方法

 start /d "folder path" 

我在考虑如果你正在创build一个批处理脚本,它依赖于当前目录被设置为包含batch file的文件夹,当你尝试使用完全限定的path执行batch file时,就像你从一个调度程序那样。

最好把这一行添加到你的batch file中:

 REM Change Current Directory to the location of this batch file CD /D %~dp0 

除非你完全符合你所有的path。

另一个解决scheme是使用cmd.exe快捷方式文件而不是batch file。

将属性中的快捷方式开始编辑到%〜dp0

除了它有Cmd图标(你可以改变它),你可以达到同样的效果。

有些人不喜欢点击batch file,而不知道它们是什么,一些企业networking驱动器禁止.bat文件…

您可以通过registry添加一个上下文菜单项:

  1. 在你的registry中导航到HKEY_LOCAL_MACHINE/Software/Classes/Folder/Shell然后创build一个名为“Command Prompt”的键,而不用引号。

  2. 将默认string设置为您想要在右键单击菜单中显示的任何文本。

  3. 在新创build的名为“command”的命令提示符中创build一个新的密钥,并将默认string设置为

     cmd.exe /k pushd %1 

如果找不到可执行文件,则可能需要在cmd.exe之前添加%SystemRoot%\system32\

  1. 这些变化应该立即发生。 右键单击一个文件夹,你的新菜单项应该出现。

另见http://www.petri.co.il/add_command_prompt_here_shortcut_to_windows_explorer.htm

最简单的命令是:
start

您可以随时在命令行中运行此命令行以在同一位置打开新的命令行窗口。 或者你可以把它放在你的.bat文件中。

在资源pipe理器中最简单的方法是Shift +鼠标右键单击该文件夹或文件夹中的空白空间,然后单击Open command prompt here

然后CMD将在该文件夹中启动

我必须说,我不确定它是否适用于Windows Vista及更低版本,但它肯定适用于Windows 7,8,8.1和10。

可能是一个有点老的任务,但对于像我这样的谷歌search,你可以按住Shift并右键单击该文件夹。 这样的内容菜单生病显示打开命令窗口在这里。

有点晚了,但如果我正确理解你的需求,这将有助于同样的问题的人。

两个解决scheme具有相同的第一步:首先导航到您保留脚本的位置,并将文件path复制到该目录。

第一个scheme:

  • 点击“开始”
  • 右键单击“计算机”(或“我的电脑”)
  • 点击“属性”
  • 在左侧,点击“高级系统设置”
  • 点击“环境variables”
  • 在“系统variables”框中,向下滚动并select“PATH”
  • 点击“编辑”
  • 在“variables值”字段中,一直向右滚动
  • 如果还没有分号(;),请添加它。
  • 粘贴在您之前复制的文件path中。
  • 以分号结尾。
  • 点击“确定”
  • 再次点击“确定”
  • 最后单击“确定”

您现在可以使用任何脚本,就好像您已经是该文件夹一样。

第二个解决scheme:(可以很容易地与第一个配对使用)

在桌面上创build一个包含以下内容的batch file。

 @echo off cmd /k cd "C:\your\file\path" 

这将打开一个命令窗口,就像你试图做的一样。


对于在Windows命令信息吨在这里检查: http : //ss64.com/nt/

这段代码适用于我的命名为cmd.bat

 @echo off title This is Only A Test echo. :Loop set /p the="%cd%" %the% echo. goto loop 

在你的目录下创build一个新的文件startCmdLine.bat,并把它放在里面

 call cmd 

这就对了。 现在双击.bat文件。 这个对我有用。

你可以用开始replace掉,也可以。

参考@Chris的回答,

我们也可以到batch file的父目录下面运行命令

 cd /d %~dp0.. <OTHER_BATCH_COMMANDS> cmd.exe 

要了解命令cd /d %~dp0..请参阅下面的链接

在Windows中,命令cd / d%〜dp0是什么意思?

你可以试试:

shift + 右键单击

然后点击这里打开命令提示符