Windows XP'de CMD Başlığını geçerli çalışan Dizin'e ayarlama


18

Windows XP'deki Komut İstemi'nin (CMD) başlığını geçerli çalışma dizinine dinamik olarak nasıl ayarlar? kullanabilirim

title %CD%

ancak, bu geçici bir düzeltmedir ve CD komutunu kullanarak dizini değiştirdiğimde başlık sabit kalır.


pushdMakrolardan biriyle kullandığınızda ne olur ?
Merhaba71

Yanıtlar:


20

Yerçekimi doskey makrosu sayesinde işe yaradı. Mükemmel şekilde çalışan cd ve başlık komutlarını birleştirmek için && kullanmıştır. Bu makro yüklemesini, cmd'yi her kayıt defterini değiştirerek kullandığımda bile yaptım.

1) cmd_title.bat adında bir bat dosyası oluşturdum ve içeriği

@echo off
title %cd%

2) Bu dosyayı C: sürücüsüne yerleştirdim (C: \ cmd_title.bat)

3) C: sürücüsünde aşağıdaki içeriğe sahip cmd.bat adlı başka bir toplu iş dosyası oluşturun

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

(/ d bayrağı başka bir sürücüye geçmek için cd'yi kullanmak içindir).

4) Sonra regedit'i açıp HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Command Processor'a gidiyoruz . Burada AutoRun adında bir anahtar var . Bu anahtarın değerini değiştirir ve cmd.bat dosyasının yerine tırnak işareti olarak ayarlarız (örneğin: "C: \ cmd.bat").

Şimdi cmd'yi her açtığımızda cd istediğimiz gibi çalışıyor.

Temel olarak && Windows'ta komut zinciri için kullanılır


Harika, çözümünü işe aldım. Ama "hit tab key, auto-match" fonksiyonumu kaybettim.
rok2791SWTS

Kayıt defterindeki HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Command Processor anahtarındaki CompletionChar / PathCompletionChar değerlerini bozmuş olabilirsiniz. Otomatik tamamlama için sekme tuşunu kullanmak için CompletionChar ve PathCompletionChar değerlerini 0x9 (hex)
Stormshadow

+1, çalışan bir çözümdür, ancak küçük düzeltmelerle: AutoRun bir anahtar değil , dize türünün değeridir .
mloskot

1
Güzel çözüm! Bunun yerine makroyu yazarsanız cmd_title.bat olmadan da yapabilirsiniz:doskey cd=@echo off$Tcd /d $*$T@title ^%cd^%$Techo on
Superole

1
Yankılanmasını istemediğiniz komutların önüne @echo offeklerseniz gerekli bulmuyorum @. Ayrıca, bu komutu başlığı tam yol yerine yalnızca geçerli dizin adına ayarlamak için daha yararlı buldum@for %%* in (.) do @title %%~nx*
Bron Davies

5

Pushd ve popd'nin cd'den çok daha yararlı olduğunu düşünüyorum ve yazmak için daha hızlı olsaydı çok daha fazla kullanım görürlerdi. Yolumda olan d.bat adını verdiğim şu komut dosyasıyla cd vs pushd / popd ve konsol penceresi dizin başlığı sorunlarını çözdüm.

@ 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

Komut İstemi'nin başlığını titlekomutu kullanarak değiştirebilirsiniz .

Şunları içeren bir toplu iş dosyası oluşturabilirsiniz (örneğin, mycd.bat):

title "%1"
cd  "%1"

ve "cd" yerine kullanın:

mycd "newdir"

Ayrıca her zaman kullanılabilir olmasını istiyorsanız .bat dosyasını system32'ye koyabilirsiniz.


4
Makroları kullanmak daha iyi bir seçenek olacaktır:doskey cd=cd $* ^&^& title $*
user1686

@grawity: İyi fikir.
harrymc

1

En azından Windows kabuğu ile yapamazsınız.


Olabilir için "set XTerm başlığı" kaçış dizileri eklemek mümkün %PROMPT%, Windows Konsol çıkış sıralarını desteklemeyen olarak, ancak (SFU dan belki PuTTYcyg falan), farklı bir terminal emülatörü gerekir.

Alternatif olarak, başlıkları ayarlamak için Windows konsol işlevlerini kullanabilen başka bir kabuk bulun.


Bunlar genellikle Windows bağlamlarında karıştırılır, bu yüzden ...

kabuk girişi okur ve yorumlar; cmd.exe, command.com,/bin/sh

terminal , terminal emülatörü , konsol ekranınızda metin tabanlı programlar (kabuk dahil) görüntüler; Windows Console, xterm,PuTTYcyg


aslında, cmd.exe bir terminaldir. kaşif bir kabuktur.
Kale

1
@Idigas: explorerbir GUI kabuğu, cmd.exemetin tabanlı bir kabuktur . (Bir düşünün: cmd.exe/bin/sh/bin/sh
Unix'teki

Ben düzeltilmiş duruyorum.
Kale

1

Yolda \ tools olduğunu ve toplu iş dosyalarınızı sakladığınız yeri varsayalım:

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

Artık cdtitle.batbaşka bir toplu iş dosyasından çağırabileceğiniz bir tane var.


1

Bir dosya oluşturun: cd.bat ve aşağıdakileri buraya koyun:

cd %*  
title %CD%  

Sonra şu komutu verin:

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

"..." yerine cd.bat yolunu yazın. Deneyin ve çalıştığını görün.

Bu kalıcı ish'i yapmak için dosrc.cmd dosyasını oluşturun, o doskey komutunu buraya koyun ve ardından bir cmd kısayolu oluşturun, sağ tıklayın ve özellikleri seçin.

Hedefi şu şekilde değiştirin:

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

Yine, "..." yerine dosrc.cmd yolunu yazın

Sonra kısayola çift tıklayın, cd işlevselliğine sahip olmalısınız.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.