如何在Windows XP中将CMD的标题设置为当前工作目录


18

如何动态地将Windows XP中的命令提示符(CMD)的标题设置为当前工作目录?我可以用

title %CD%

但是,这是一个临时修复,当我使用CD命令更改目录时,标题保持不变。


那么,当您使用pushd其中一个宏时会发生什么?
Hello71

Answers:


20

多亏了引力的doskey宏,它才能正常工作。他使用&&组合了cd和title命令,效果很好。每次使用cmd时,我都通过调整注册表来使此宏加载。

1)我创建了一个名为cmd_title.bat的蝙蝠文件,其内容为

@echo off
title %cd%

2)我将此文件放在C:驱动器(C:\ cmd_title.bat)中

3)在C:驱动器中创建另一个名为cmd.bat的批处理文件,其内容如下:

doskey cd = cd /d $* ^&^& "C:\cmd_title.bat"
title %cd%

(/ d标志用于使用cd切换到另一个驱动器)。

4)然后我们打开regedit并转到HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Command Processor。这里有一个称为AutoRun的键。我们修改该键的值,并将其设置为cmd.bat文件中带引号的位置(例如:“ C:\ cmd.bat”)。

现在,每次打开cmd时,cd就可以按照我们的要求工作。

基本上&&用于Windows中的命令链接


太好了,我找到了您的解决方案。但是我丢失了“按Tab键,自动匹配”功能。
rok2791SWTS

您可能已经干扰了注册表中HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Command Processor项中的CompletionChar / PathCompletionChar值。要使用Tab键自动完成设置,您需要将CompletionChar和PathCompletionChar值设置为0x9(十六进制)
Stormshadow 2010年

+1是一个可行的解决方案,但需要进行较小的更正:AutoRun不是键,而是字符串类型的
mloskot 2011年

1
不错的解决方案!如果您改按以下方式键入宏,也可以不使用cmd_title.bat来执行此操作:doskey cd=@echo off$Tcd /d $*$T@title ^%cd^%$Techo on
Superole 2015年

1
我发现@echo off没有必要,只要@在不想回显的命令前面添加即可。我还发现此命令对于将标题设置为仅当前目录名而不是完整路径更为有用@for %%* in (.) do @title %%~nx*
Bron Davies

5

我认为push和popd比cd有用,并且如果它们能更快键入,将会看到更多的用途。我已使用以下脚本解决了cd vs. push / popd和控制台窗口目录标题的问题,该脚本称为d.bat,位于我的路径中。

@ echo off
rem d.bat replaces CD, PUSHD, and POPD with one command that also changes the title
rem of the console window to tell the current directory. Invoked with no arg, the
rem title is updated. Use this after changing the directory by some other means.
rem The argument / invokes popd. Any other argument invokes pushd with that arg.

if not _%1 == _ ( 
    if _%1 == _/ (
        popd
    ) else (
        pushd %*
    )
)
title %CD%

2

您可以使用命令更改命令提示符的标题title

您可以创建一个包含以下内容的批处理文件(例如mycd.bat):

title "%1"
cd  "%1"

并使用它代替“ cd”:

mycd "newdir"

如果您希望它始终可用,也可以将.bat文件放在system32中。


4
使用宏将是一个更好的选择:doskey cd=cd $* ^&^& title $*
grawity 2010年

@grawity:好主意。
哈里奇

1

您不能,至少不能使用Windows Shell。


也许有可能加入“集的Xterm标题”转义序列%PROMPT%,但你需要一个不同的终端仿真器(可能是PuTTYcyg或东西从SFU),因为Windows控制台不支持转义序列。

或者,找到另一个可以使用Windows控制台功能设置标题的外壳。


这些通常在Windows上下文中很困惑,所以...

Shell读取和解释输入;cmd.execommand.com/bin/sh

terminal终端仿真器控制台在屏幕上显示基于文本的程序(包括外壳);Windows ConsolextermPuTTYcyg


实际上,cmd.exe是终端。资源管理器是一个外壳。
Rook

1
@Idigas:explorer是一个GUI Shell,cmd.exe是一个基于文本的外壳。(考虑一下:在Unix中cmd.exe与之完全等效/bin/sh,并且/bin/sh始终称为“外壳”。类似地,Windows控制台在X11中等同于“终端仿真器”。)
grawity 2010年

我站得住了。
Rook

1

假设\ tools在路径中,并且是保存批处理文件的位置:

copy con: \tools\titlecmd.txt

title ^Z

copy con: \tools\cdtitle.bat

cd>\tools\cd.txt

copy \tools\titlecmd.txt+\tools\cd.txt cdtitletmp.bat

call cdtitletmp

^Z

现在cdtitle.bat,您可以从另一个批处理文件进行调用。


1

创建一个文件:cd.bat,然后在其中放置以下内容:

cd %*  
title %CD%  

然后发出以下命令:

doskey cd=...\cd.bat $*  

将“ ...”替换为cd.bat的路径。尝试一下,看看它是否有效。

要使它永久生效,请创建dosrc.cmd,在其中放入该doskey命令,然后创建一个cmd快捷方式,右键单击它并选择属性。

将目标修改为:

%windir%\system32\cmd.exe /K ...\dosrc.cmd  

再次,将“ ...”替换为dosrc.cmd的路径

然后双击快捷方式,您应该具有cd功能。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.