Windows XPでCMDのタイトルを現在の作業ディレクトリに設定する方法


18

Windows XPのコマンドプロンプト(CMD)のタイトルを現在の作業ディレクトリに動的に設定するにはどうすればよいですか?使うことができます

title %CD%

ただし、これは一時的な修正であり、CDコマンドを使用してディレクトリを変更してもタイトルは修正されたままです。


さて、pushdマクロの1つで使用するとどうなりますか?
Hello71

回答:


20

gravvityのdoskeyマクロのおかげで動作するようになりました。彼は&&を使用してcdコマンドとtitleコマンドを組み合わせており、完全に機能しています。レジストリを微調整して、cmdを使用するたびにこのマクロをロードするようにしました。

1)cmd_title.batという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のコマンドチェーンに使用されます


クール、私はあなたのソリューションが機能するようにしました。しかし、「ヒットタブキー、自動一致」機能が失われました。
rok2791SWTS

レジストリのHKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Command ProcessorキーのCompletionChar / PathCompletionCharの値が乱れている可能性があります。自動補完にタブキーを使用して設定するには、CompletionCharおよびPathCompletionCharの値を0x9(16進数)に設定する必要があります
-Stormshadow

+1は実用的なソリューションですが、若干の修正があります。AutoRunはキーではなく、文字列タイプのです。
mloskot

1
いい解決策!あなたの代わりにこのようなマクロを入力する場合にもcmd_title.batせずにそれを行うことができます:doskey cd=@echo off$Tcd /d $*$T@title ^%cd^%$Techo on
Superole

1
エコーしたくないコマンドの前に@echo off追加するだけなら、私は必要@ありません。私はまた、フルパスではなく、単に現在のディレクトリ名にタイトルを設定するには、このコマンドは、より有用であることが判明@for %%* in (.) do @title %%~nx*
ブロンデイヴィス

5

pushdとpopdはcdよりもはるかに便利であり、入力が速い場合はさらに多くの用途が見られると思います。cdとpushd / 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

@grawity:いい考えだ。
harrymc

1

少なくともWindowsシェルではできません。


可能性に「セットXtermのタイトル」エスケープシーケンスを追加することはでき%PROMPT%ますが、Windowsのコンソールは、エスケープシーケンスをサポートしていないとして、あなたは、別の端末エミュレータ(おそらくPuTTYcygまたはSFUから何かを)必要があります。

または、Windowsコンソール機能を使用してタイトルを設定できる別のシェルを見つけます。


これらは、Windowsコンテキストでしばしば混同されるため、...

シェルは入力を読み取り、解釈します。cmd.execommand.com/bin/sh

端末端末エミュレータコンソールは、画面にテキストベースのプログラム(シェルを含む)を表示します。Windows ConsolextermPuTTYcyg


実際、cmd.exeはターミナルです。エクスプローラーはシェルです。
ルーク

1
@Idigas:explorerGUIシェルでcmd.exeあり、テキストベースのものです。(それについて考えてみてください:Unixとcmd.exeまったく同じで/bin/sh/bin/sh常に「シェル」と呼ばれます。同様に、WindowsコンソールはX11の「ターミナルエミュレーター」と同等です。)
grawity

私は立ち直る。
ルーク

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機能が必要になります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.