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

问题描述 投票:47回答:16

我有很多脚本,我从命令行进行交互。每次我需要使用它们时,我必须打开一个命令行窗口并将其复制+粘贴和CD到它们所在目录的路径。这很繁琐(它们位于一个相当深的文件系统中,因此键入完整路径是一种痛苦,复制+粘贴更好但不多。我试图创建一个.BAT文件,我可以双击它将在.bat文件存在的文件夹中打开一个新的命令行窗口,但它不起作用。它会打开一个新窗口,但工作目录不是.bat文件所在的目录。这是我在google搜索后得到的内容(我的cmd技能不是很好):

cd %CD%
cmd.exe

我知道从使用Linux时Konqueror有一个“命令行窗口在这里”功能,这就是我试图在Windows上获得的效果。

windows cmd windows-xp
16个回答
46
投票

使用以下行创建名为open_dos_here.cmd的文件:

%~d1
cd "%~p1"
call cmd

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

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


2
投票

执行此操作的最简单命令: start

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


1
投票

在您的目录中创建一个新文件startCmdLine.bat并将此行放入其中

call cmd

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

你可以用start替换call,它也可以工作。


1
投票

参考@Chris的回答,

我们也可以转到批处理文件的父目录,并使用以下命令运行命令

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

要了解命令cd /d %~dp0..的工作,请参阅以下链接

What does it mean by command cd /d %~dp0 in Windows


0
投票

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

具有相同第一步的两个解决方案:首先导航到保存脚本的位置,然后将文件路径复制到该目录。

第一解决方案

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

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

第二个解决方案:(可以很容易地与第一个配对,以获得额外的实用性)

在桌面上创建包含以下内容的批处理文件。

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

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


有关Windows命令的大量信息,请访问:http://ss64.com/nt/


0
投票

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

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

0
投票

你可以试试:

shift +右键单击

然后,单击此处打开命令提示符


0
投票

在给定文件夹内单击顶部地址栏并键入cmd并单击输入它将打开带有当前文件夹地址的命令提示符。


95
投票

你可能想这样做:

cd /d %~dp0
cmd.exe

这会将您当前的目录设置为您拥有批处理文件的目录


24
投票

您只需在资源管理器中的地址栏中输入cmd即可在该路径中启动。同样适用于PowerShell。


11
投票

有更简单的方法

start /d "folder path"

7
投票

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

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


6
投票

我想如果你创建一个依赖于当前目录被设置为包含批处理文件的文件夹的批处理脚本,当你尝试使用完全限定的路径执行批处理文件时,你正在设置自己的麻烦就像你从调度程序那样。

最好将此行添加到批处理文件中:

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

除非你完全符合你的所有路径。


3
投票

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

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

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


2
投票

另一种解决方案是使用cmd.exe的快捷方式文件而不是批处理文件。

将快捷方式的属性开始编辑为%~dp0。

你实现了同样的目标,除了它有Cmd图标(你可以改变它)。

有些人不喜欢点击批处理文件而不知道它们是什么,有些企业网络驱动器禁止.bat文件......


2
投票

您可以通过注册表添加上下文菜单条目:

  1. 在您的注册表中导航到HKEY_LOCAL_MACHINE/Software/Classes/Folder/Shell并创建一个名为“命令提示符”的键,不带引号。
  2. 将默认字符串设置为要在右键单击菜单中显示的任何文本。
  3. 在新创建的名为“command”的命令提示符中创建一个新密钥,并将默认字符串设置为 cmd.exe /k pushd %1

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

  1. 变更应立即进行。右键单击文件夹,应显示新的菜单项。

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

© www.soinside.com 2019 - 2024. All rights reserved.