มีคำสั่งทางลัดในพรอมต์คำสั่งของ Windows เพื่อไปที่โฮมไดเรกทอรีของผู้ใช้ปัจจุบันเหมือนใน Linux หรือไม่?


104

ฉันคุ้นเคยกับการใช้

cd ~

เพื่อรับสิทธิในไดเรกทอรีบ้านของฉัน ในพรอมต์คำสั่งของ Windows ฉันต้องทำ

cd Users\username

เพื่อไปที่นั่น มีทางลัดเหมือนลีนุกซ์หรือไม่? มันจะดีถ้าฉันไปถึงที่นั่นโดยการทำ

cd username

สิ่งนี้เป็นไปได้ใน Windows Vista หรือไม่


7
ใน Unix ไม่จำเป็นต้องมีเครื่องหมายตัวหนอน cdโดยไม่มีข้อโต้แย้งจะเปลี่ยนเป็นไดเรกทอรีบ้านของคุณ
coneslayer

มีคำถามเช่นนี้ที่นี่ที่ su หาไม่พบ
akira

1
@conlayer ฉันรู้ แต่ต้องย้ายไฟล์จากไดเรกทอรีหนึ่งไปยังอีกไดเรกทอรีหนึ่งคุณใช้เครื่องหมายตัวหนอน
classer

ง่ายเหมือนcd %userprofile%
subtleseeker

คุณสามารถใช้ Windows Power Shell (ใน Win XP และใหม่กว่า) ซึ่งอนุญาตให้คุณใช้ ~ สำหรับไดเรกทอรีภายในบ้าน ดูเพิ่มเติมที่ ----> stackoverflow.com/questions/9228950/…
franz1

คำตอบ:


20

คุณสามารถใส่. bat-File ไว้ที่ใดก็ได้ใน% PATH% ของคุณซึ่งจะเปลี่ยนเส้นทางให้คุณ


154

ใช่คุณสามารถใช้%HOMEPATH%ซึ่งเป็นเส้นทางแบบเต็มของโฮมไดเรกทอรีของผู้ใช้

มีตัวแปรที่มีประโยชน์อื่น ๆ อีกสองสามอย่างเช่น%OS%(ระบบปฏิบัติการ) หรือ%WINDIR%(ไดเรกทอรีระบบ Windows) ดูที่Wikipedia: ตัวแปรสภาพแวดล้อมสำหรับรายการ


หมายเหตุ :

จริงๆแล้วสิ่งต่าง ๆ มีความซับซ้อนเล็กน้อย (ตามปกติ) %HOMEPATH%มีเส้นทางเท่านั้นโดยไม่มีตัวอักษรของไดรฟ์ดังนั้นจะไม่สามารถใช้งานได้กับcdไดรฟ์อื่น นอกจากนี้คุณยังสามารถใช้%USERPROFILE%ซึ่งจะ%HOMEPATH%มีตัวอักษรไดรฟ์และมักจะไดเรกทอรีเดียวกันกับ

ค่าของตัวแปรเหล่านี้และสิ่งใดที่เหมาะกับคุณจะขึ้นอยู่กับรุ่นของ Windows และการเปลี่ยนแปลงใด ๆ ของผู้ดูแลระบบเนื่องจากค่าของตัวแปรเหล่านั้นอาจแตกต่างกัน (ดูตัวอย่างเช่นคำถามความแตกต่างระหว่างโปรไฟล์และโฮมพา ธ )


5
นี่เป็นคำตอบที่ถูกต้องที่สุดในความคิดของฉันเพราะมันไม่ได้ขึ้นอยู่กับเส้นทางที่ใช้รหัสยากและลิงค์ระบบไฟล์ที่แปลกประหลาดซึ่งอาจอยู่ระหว่างพวกเขา
Ed Orsi

3
นี่คือคำตอบที่ถูกต้อง
เฟรดเดอ Krautwald

สิ่งนี้ช่วยชีวิตฉัน! หลังจากดูคำตอบอื่น ๆ มากมายจากคำถามที่แตกต่างกัน อีกครั้ง! สิ่งนี้ใช้ได้กับฉันและควรทำเครื่องหมายว่าเป็นคำตอบสำหรับคำถามนี้
แพทริเซีย

@MissLucy: ฉันดีใจที่มันช่วยคุณ เป็นการยอมรับคำตอบ: มันขึ้นอยู่กับ OP ที่จะตัดสินใจ คุณสามารถเพิ่มความคิดเห็นคำถามเพื่อแจ้งเตือนพวกเขา
sleske

ใช้% USERPROFILE% แทน
JJS

21

สองตัวเลือกอื่น ๆ ซึ่งทั้งสองอย่างสามารถเพิ่มลงในสคริปต์และดำเนินการอัตโนมัติในลักษณะที่คล้ายคลึงกับคำตอบของ BillP3rd

มันเป็นตัวละครอีกสองตัว แต่ ...

SET ~=%HOMEPATH%    
CD %~%

หรือ...

CD %~%\Desktop

หรือ...

doskey ~=cd %homepath%
~

แน่นอนคุณไม่สามารถใช้สิ่งนี้ได้~ในเส้นทาง แต่การพิมพ์ "ข้ามไปยังบ้านของฉันอย่างรวดเร็ว" ~ Enterนั้นค่อนข้างรวดเร็ว


1
คุณล้อเล่นกับสิ่งที่ฉันทำใช่มั้ย ??? ตอนนี้ฉันมีแป้นพิมพ์ลัดเดียวไปยังโฟลเดอร์ใด ๆ ที่ฉันรู้สึกเหมือนอยู่ในซีดี นี่ควรเป็น # 1 คำตอบ
Andrew

9

ฉันสร้างไฟล์. cmd ในไดเรกทอรีในพา ธ ของฉันและตั้งชื่อว่า "cd ~ .cmd" เนื้อหาของมันคือ:

@cd %HOMEPATH%

ดังนั้นฉันสามารถพิมพ์ "cd ~" จากที่ใดก็ได้เพื่อไปยังไดเรกทอรีบ้านของฉัน ไม่เหมือนกับ "cd ~" (สังเกตพื้นที่ที่หายไป) แต่ใกล้พอสำหรับฉัน


2
คำตอบที่ฉลาดที่สุด เมื่อรวมคำตอบของคุณเข้ากับKenny Evittจะได้คำตอบที่ดีที่สุด
Sнаđошƒаӽ

7

คำตอบของ sleskeนั้นเกือบจะถูกต้องแล้ว แต่มันก็ไม่ได้ผลเสมอไป

หากโฮมไดเรกทอรีของคุณอยู่ในการตั้งค่าเครือข่ายที่ใช้ร่วมกันเป็นไดรฟ์ที่แมปให้เรียกใช้สิ่งต่อไปนี้โดยไม่คำนึงถึงไดรฟ์ของไดเรกทอรีปัจจุบัน:

cd /D %HOMEDRIVE%%HOMEPATH%

/Dสวิทช์เป็นสิ่งจำเป็นที่จะอนุญาตให้cdมีการเปลี่ยนแปลงไดรฟ์


5

มีทางลัดC:\Users\<current user>\ใช่มั้ย

ไม่มีทางลัดโดยตรง

มีวิธีแก้ไขปัญหาต่าง ๆ สองสามข้อ (ดูด้านล่าง)

  1. ใช้ตัวแปรสภาพแวดล้อมพร้อมกับcdหรือcd /d

  2. ใช้substหรือnet useเพื่อสร้างการแมปไปยังตัวอักษรไดรฟ์อื่น

  3. ติดตั้งcygwinและใช้งานbash

  4. ใช้powershell- powershell รองรับ~

วิธีการแก้ปัญหาที่ผ่านมาอาจจะเป็นที่ง่ายที่สุดคือถ้าคุณกำลังเตรียมที่จะใช้แทนpowershellcmd


โซลูชันที่ 1: ใช้ตัวแปรสภาพแวดล้อมพร้อมกับcdหรือcd /d

หากคุณต้องการเปลี่ยนเป็นไดเร็กทอรีนี้เป็นประจำให้รันคำสั่งต่อไปนี้:

setx DOCS %USERPROFILE%

สิ่งนี้จะตั้งค่าตัวแปรสภาพแวดล้อมอย่างถาวรDOCSแต่ในการใช้งานคุณต้องเริ่มcmdเชลล์ใหม่ก่อนจากนั้นจึงกำหนดตัวแปรและพร้อมใช้งาน:

F:\test>echo %DOCS%
C:\Users\DavidPostill\

ในการเปลี่ยนไดเรกทอรีจากตำแหน่งใด ๆ ให้ใช้คำสั่งต่อไปนี้:

cd /d %DOCS%

หากคุณใช้ไดรฟ์อยู่แล้วc:คุณสามารถใช้:

cd %DOCS%

สร้างไฟล์ชุด ( docs.cmd) PATHและวางไว้ที่ไหนสักแห่งในของคุณ

docs.cmd:

@echo off
cd /d %DOCS%

จากนั้นคุณสามารถพิมพ์docsโดยไม่คำนึงถึงตำแหน่งปัจจุบันของคุณและจะนำคุณไปยังC:\Users\<current user>


โซลูชันที่ 2: ใช้substหรือnet useเพื่อสร้างการแมปไปยังอักษรชื่อไดรฟ์อื่น

คุณสามารถใช้subst:

subst x: %USERPROFILE%

และจากนั้น

x:

น่าเสียดายที่การแมปไดรฟ์ไม่คงอยู่ในการรีบูต

net use จะคงอยู่ตลอดการบู๊ตตัวอย่างเช่น:

net use x: "\\computerName\c$\pathName" /persistent:yes

ดูคำตอบในวิธีการทำแผนที่ SUBST แบบถาวรตลอดการรีบูตเครื่อง? สำหรับคำแนะนำโดยละเอียด


โซลูชันที่ 3: ติดตั้งcygwinและใช้งานbash

คุณสามารถลองติดตั้งcygwin ได้ :

Cygwin คือ:

  • ชุดใหญ่ของ GNU และเครื่องมือโอเพนซอร์สที่ให้การทำงานคล้ายกับการกระจาย Linux บน Windows

เมื่อคุณติดตั้ง cygwin แล้วคุณสามารถเรียกใช้bashในเทอร์มินัล cygwin และตั้งค่าตัวแปรสภาวะแวดล้อม bash HOMEตามความเหมาะสม

ทางเลือกอื่นใน cygwin ได้แก่msys (MingW) :

MSYS เป็นชุดของโปรแกรมอรรถประโยชน์ GNU เช่นทุบตี, ทำ, เพ่งพิศและ grep เพื่ออนุญาตการสร้างแอปพลิเคชันและโปรแกรมที่ขึ้นอยู่กับเครื่องมือ UNIX แบบดั้งเดิมที่จะนำเสนอ มันมีวัตถุประสงค์เพื่อเสริม MinGW และข้อบกพร่องของเปลือก cmd

และGit สำหรับ Windows :

Git สำหรับ Windows มีการจำลองแบบ BASH ที่ใช้เพื่อเรียกใช้ Git จากบรรทัดคำสั่ง * ผู้ใช้ NIX ควรรู้สึกเหมือนอยู่บ้านเพราะ BASH emulation ทำงานเหมือนกับคำสั่ง "git" ในสภาพแวดล้อม LINUX และ UNIX


โซลูชันที่ 4: การใช้งาน powershell

ตามที่ระบุไว้ในความคิดเห็นในคำถามอื่นโดยSBI powershell สนับสนุน~และคุณสามารถพิมพ์:

cd ~

อ่านเพิ่มเติม

  • ดัชนี AZ ของบรรทัดคำสั่ง Windows CMD - การอ้างอิงที่ยอดเยี่ยมสำหรับทุกสิ่งที่เกี่ยวข้องกับบรรทัด Windows cmd
  • cd - เปลี่ยนไดเรกทอรี - เลือกโฟลเดอร์ (และไดรฟ์)
  • setx - ตั้งค่าตัวแปรสภาพแวดล้อมอย่างถาวรสามารถใช้ SETX เพื่อตั้งค่าตัวแปรสภาพแวดล้อมสำหรับเครื่อง (HKLM) หรือผู้ใช้ที่เข้าสู่ระบบในปัจจุบัน (HKCU)
  • subst - แทนอักษรชื่อไดรฟ์สำหรับเครือข่ายหรือเส้นทางท้องถิ่น

หากบน Powershell มีสองวิธีเพิ่มเติม: cd $HOMEและcd $env:HOMEPATH
Dirk Thannhäuser

3

Dunno ถ้ามันเป็นคุณสมบัติของสคริปต์การเข้าสู่ระบบการทำงานของเราหรือหน้าต่างเริ่มต้น แต่ฉันสามารถใช้ cd% HOMEPATH% เพื่อให้บรรลุซึ่ง HOMEPATH เป็นตัวแปรสภาพแวดล้อม


ฉันเห็น. มันยังใช้เวลามากในการเขียน% HOMEPATH% นอกจากนี้คุณไม่สามารถป้อนให้อัตโนมัติ มีวิธีที่ฉันสามารถทำให้ชื่อผู้ใช้ของฉันเท่ากับ% HOMEPATH% โดยการสร้างคำสั่งใหม่ใน cmd.exe หรือไม่
classer

1

ถ้าคุณต้องการให้พรอมต์คำสั่งของผู้ใช้ทั้งหมดเริ่มต้นในไดเรกทอรี "บ้าน" ของพวกเขาสร้างคีย์รีจิสทรีต่อไปนี้เป็นค่าสตริงที่ขยายได้ (คำพูด sans แน่นอน):

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun : "cd /d %USERPROFILE%"

หากคุณต้องการเพียงคำสั่งของคุณแจ้งให้ทำ:

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun : "cd /d %USERPROFILE%"

ฉันทำให้มันเป็นแบบฝึกหัดที่จะเก็บโฟลเดอร์ ac: \ Scripts ซึ่งฉันเก็บไว้เป็น "autoexec" - ไฟล์แบตช์ชนิดที่ฉันเรียกใช้ผ่านทางคีย์นี้


ระวังนี่จะพังและ bpm (และ Visual Studio) ...
Quandary

1

ฉันรู้ว่านี่เป็นคำถามที่ทำมานาน แต่สำหรับบันทึกแล้ว ติดตั้งclinkซึ่งจะขยายพรอมต์คำสั่งของคุณในหลาย ๆ ใช่มันหนักกว่าการแก้ปัญหาข้างต้น แต่มันทำให้หน้าต่าง cmd ทำงานได้ดีขึ้นมาก


clink == การแก้ไขบรรทัดคำสั่งสไตล์ทรงพลังสำหรับ cmd.exe
สงสัย

ถูกต้องและจุดทั้งหมดคือ ~ แก้ไขไปยังไดเรกทอรี User \ {user}
THBBFT

0

Windows ได้กลายเป็น 'ทุกอย่างเกี่ยวกับ gui' ดังนั้นในกรณีของคุณฉันจะได้รับเครื่องมือที่คุณต้องการแทนที่จะพยายาม 'โค้ง' ระบบตามความต้องการของคุณ ... เครื่องมือ MinGW เป็นคอลเล็กชั่นที่ยอดเยี่ยมของบางส่วน เครื่องมือ gnu ที่ใช้กันอย่างแพร่หลายมากที่สุด ... ฉันขอแนะนำอย่างยิ่งหากคุณเป็นแฟนห้ามใช้ Win ...

http://www.mingw.org/wiki/MSYS


0

ฉันใช้เทอร์มินัลที่ดีกว่า ( cmder ) เพื่อจุดประสงค์นี้ มันสร้างขึ้นในนามแฝงและใช้งานง่ายมาก แค่อ่านเอกสารเกี่ยวกับนามแฝงที่นี่

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