วิธีการตั้งชื่อของ CMD เป็นไดเรกทอรีการทำงานปัจจุบันใน Windows XP


18

หนึ่งจะตั้งชื่อของ Command Prompt (CMD) ใน Windows XP เป็นไดเรกทอรีการทำงานปัจจุบันได้อย่างไรแบบไดนามิก? ฉันสามารถใช้

title %CD%

อย่างไรก็ตามนี่คือการแก้ไขชั่วคราวและชื่อยังคงได้รับการแก้ไขเมื่อฉันเปลี่ยนไดเรกทอรีโดยใช้คำสั่งซีดี


จะเกิดอะไรขึ้นเมื่อคุณใช้pushdกับมาโครตัวใดตัวหนึ่ง
Hello71

คำตอบ:


20

ทำให้มันทำงานได้ด้วยมาโคร doskey ของ gravvity เขาใช้ && เพื่อรวมคำสั่ง cd และหัวเรื่องซึ่งทำงานได้อย่างสมบูรณ์แบบ ฉันทำมาโครโหลดนี้ทุกครั้งที่ฉันใช้ cmd ด้วยการปรับแต่งรีจิสทรี

1) ฉันสร้างไฟล์ bat ชื่อcmd_title.batและเนื้อหาเป็น

@echo off
title %cd%

2) ฉันวางไฟล์นี้ในไดรฟ์ C: (C: \ cmd_title.bat)

3) สร้างไฟล์แบตช์อื่นที่ชื่อว่าcmd.batในไดรฟ์ C: ที่มีเนื้อหาดังต่อไปนี้

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

(แฟล็ก / d ใช้สำหรับ cd เพื่อเปลี่ยนเป็นไดรฟ์อื่น)

4) จากนั้นเราก็เปิด regedit และไปประมวลผล HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Command ที่นี่มีเป็นกุญแจสำคัญที่เรียกว่าการทำงานอัตโนมัติ เราปรับเปลี่ยนค่าของคีย์นี้และตั้งเป็นตำแหน่งของไฟล์cmd.batในเครื่องหมายคำพูด (เช่น: "C: \ cmd.bat")

ตอนนี้ cd ทำงานตามที่เราต้องการทุกครั้งที่เราเปิด cmd

โดยทั่วไป && จะใช้สำหรับการโยงคำสั่งใน Windows


เยี่ยมมากฉันมีทางออกให้คุณทำงาน แต่ฉันทำฟังก์ชั่น "hit tab key, auto-match" ของฉันหายไป
rok2791SWTS

คุณอาจรบกวนค่า CompletionChar / PathCompletionChar ในคีย์ตัวประมวลผล HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Command ในรีจิสทรี ในการตั้งค่าให้ใช้ปุ่มแท็บสำหรับการเติมข้อมูลอัตโนมัติคุณต้องตั้งค่า CompletionChar และ PathCompletionChar เป็น 0x9 (ฐานสิบหก)
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*
Bron Davies

5

ฉันคิดว่า pushd และ popd มีประโยชน์มากกว่า cd และจะเห็นการใช้งานมากขึ้นถ้าพิมพ์เร็วขึ้น ฉันได้แก้ไขปัญหาของชื่อไดเรกทอรี cd vs. pushd / popd และ console window ด้วยสคริปต์ต่อไปนี้ซึ่งฉันเรียก 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 $*
user1686

@grawity: ความคิดที่ดี
harrymc

1

อย่างน้อยคุณก็ไม่สามารถใช้กับเชลล์ของ Windows ได้


มันอาจจะเป็นไปได้ที่จะเพิ่ม "ชุด Xterm ชื่อ" ลำดับหนีไป%PROMPT%แต่คุณจะต้องมีความแตกต่างกันจำลอง terminal (บางที PuTTYcyg หรืออะไรบางอย่างจากไอ้เวร) เป็น Windows คอนโซลไม่สนับสนุนลำดับหนี

หรือหาเชลล์อื่นที่สามารถใช้ฟังก์ชันคอนโซล Windows เพื่อตั้งชื่อ


สิ่งเหล่านี้มักจะสับสนในบริบทของ Windows ดังนั้น ...

เชลล์อ่านและตีความอินพุต; cmd.exe, command.com,/bin/sh

ขั้ว , จำลอง terminal , คอนโซลแสดงโปรแกรมข้อความตาม (รวมทั้งเปลือก) บนหน้าจอของคุณ Windows Console, xterm,PuTTYcyg


จริงๆแล้ว cmd.exe เป็นเทอร์มินัล สำรวจเป็นเปลือก
โกง

1
@Idigas: explorerเป็นเชลล์ GUI cmd.exeเป็นข้อความที่ใช้ (ลองคิดดูสิ: cmd.exeเป็นสิ่งที่เทียบเท่า/bin/shใน Unix และ/bin/shถูกเรียกว่า "the shell" เสมอในทำนองเดียวกัน Windows Console นั้นเทียบเท่ากับ "terminal emulator" ใน X11)
user1686

ฉันยืนแก้ไขแล้ว
โกง

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

จากนั้นดับเบิลคลิกที่ทางลัดคุณควรมีฟังก์ชั่นซีดี

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.