อะไรคือสิ่งที่เทียบเท่ากับ“ ~” (ตัวหนอน) ของ Linux ใน Windows


72

ใน Linux เราสามารถไปที่หน้าแรกของผู้ใช้โดยป้อน~อักขระtilde ( ) หลังcd:

cd ~

วิธีทำเช่นเดียวกันใน Windows?

แต่ละครั้งฉันต้องพิมพ์:

cd C:\Document and Settings\freewind

มันน่าเบื่อเกินไป


2
พิจารณาใช้ cygwin หรือไม่
Paul R

8
ที่จริงแล้ว '~' เป็นค่าเริ่มต้นสำหรับ 'cd' ภายใต้เชลล์ Linux ส่วนใหญ่ดังนั้นเพียง 'cd' พอเพียงที่จะไปที่บ้านของคุณ


4
คำตอบก็คือ "cd ~" .. หมายความว่าคุณสามารถใช้คำสั่งเดียวกันใน Windows ได้เช่นกัน แต่คุณไม่ควรลองใช้คำสั่งนี้ใน CMD เพราะตอนนี้ล้าสมัยและการพัฒนาของ Microsoft นั้นถูกยกเลิกโดย Microsoft ใช้ "Windows PowerShell" และคำสั่งเดียวกันจะทำงานได้อย่างราบรื่น
Apple II

3
PowerShell มาพร้อมกับ Win7 +
Isaac Dontje Lindell

คำตอบ:


43

cd /d "%HOMEDRIVE%%HOMEPATH%" จะทำ - แต่ฉันไม่แน่ใจว่าถ้าคุณพิจารณาการปรับปรุง

คุณยังสามารถกำหนดนามแฝงสำหรับคำสั่งดังกล่าว:

doskey cdhome=cd /d "%HOMEDRIVE%%HOMEPATH%"

หลังจากนี้ก็เป็นcdhomeได้


4
@Freewind: คุณต้องรักเชลล์ Windows ที่เป็นค่าเริ่มต้น
Jon

10
@abatishchev: เป็นคำถามที่ดี คำถามเกี่ยวกับ SF ดูเหมือนว่าจะบ่งบอกว่า% USERPROFILE% ดีกว่า
Jon

3
คุณยังสามารถใช้ cd ~ เป็นชื่อแมโครแทนได้หาก cdhome
jftuga

3
@abatishchev: บัญชี Windows NT สามารถแนบพา ธ "โฮมไดเร็กตอรี่" ซึ่งแยกจาก "โพรไฟล์โปรไฟล์" โปรไฟล์จะเก็บการตั้งค่าของคุณ(รีจิสทรี) ข้อมูลแอปพลิเคชันและอื่น ๆ ในทางกลับกันโฮมไดเรกทอรีสำหรับไฟล์ของคุณเอง - เมื่อโปรแกรมแสดงไดอะล็อก "เปิด / บันทึก" เป็นครั้งแรกมันจะเริ่มที่โฮมไดเร็กตอรี่ (Windows 95/98 ใช้มันค่อนข้างแตกต่างจำไม่ได้เฉพาะ) สิ่งนี้มีประโยชน์ในสภาพแวดล้อมของ Active Directory สำหรับการจัดเก็บไฟล์ในเครือข่ายที่ใช้ร่วมกัน
grawity

2
@jftuga: ~หรือแม้กระทั่ง
grawity

62

คุณสามารถใช้cd /d %USERPROFILE%ถ้าคุณใช้ cmd

หรือคุณสามารถใช้cd ~ถ้าคุณใช้ PowerShell


4
1 แต่ยังเพิ่มคำพูดรอบตัวแปร (อาจจะเป็นc:\documents and settings\...ช่องว่างที่จะทำลายมันเว้นแต่จะยกมา)
จอน

7
@ จอน: cdเป็นข้อยกเว้น เนื่องจากต้องใช้อาร์กิวเมนต์เดียวจึงไม่จำเป็นต้องมีการอ้างอิง (บน Windows โปรแกรมและบิวด์อินจะต้องแยกวิเคราะห์บรรทัดคำสั่งของตัวเองเชลล์ไม่ได้ทำ) การอ้างอิงเส้นทางเป็นแนวทางปฏิบัติที่ดีเสมอ
grawity

1
@barlop: โดยปกติแล้วCommandLineToArgvW () ; รันไทม์ CLR / MinGW / Cygwin ยังใช้การเทียบเท่าของตนเองโดยอัตโนมัติก่อนที่จะเรียก main () บางโปรแกรม แต่ได้ parsers เขียนทั้งหมดจากรอยขีดข่วนเช่นตัวเองและแปลกประหลาดของมันcmd.exe /c
grawity

1
@barlop: ไม่ใช่ถ้าคุณพยายามใช้อัญประกาศ (หรือเปลี่ยนเส้นทาง) เป็นส่วนหนึ่งของคำสั่งที่กำหนด มันเป็น/c "C:\foo bar\baz" "my file.txt"หรือ/c "\"C:\foo bar\baz\" \"my file.txt\""หรือ/c ""C:\foo bar\baz" "my file.txt""? สิ่งที่แย่กว่านั้นคือการแยกวิเคราะห์ขึ้นอยู่กับว่า/sมีการระบุไว้ก่อนหน้าหรือไม่การปรากฏตัวของอักขระพิเศษไม่ว่าจะเป็นชื่อปฏิบัติการC:\foo bar\bazหรือเพียงแค่C:\foo...
grawity

1
@TheLQ สคริปต์แบตช์ยังคงง่ายยิ่งขึ้น ฉันสามารถบรรลุผลลัพธ์เดียวกันโดยพิมพ์อักขระเดียว ดูคำตอบของฉันด้านล่างสำหรับคำอธิบาย
weberc2

13

ความเป็นไปได้อย่างหนึ่งคือการใช้substคำสั่งจากพรอมต์คำสั่ง:

subst z: C:\Document and Settings\freewind

ทุกครั้งที่คุณนำทางไปยังไดรฟ์ Z: คุณจะมองไปที่โฟลเดอร์ผู้ใช้ของคุณ

ข้อเสียคือคุณต้องเรียกใช้ทุกครั้งที่คุณลงชื่อเข้าใช้ฉันใช้แบตช์ไฟล์และใส่ไว้ในโฟลเดอร์เริ่มต้นของฉัน

ประโยชน์คือไม่เหมือนกับนามแฝงของ doskey มันใช้งานได้ทั่วโลก (windows explorer, ดูไดอะล็อก, ฯลฯ ), ไม่ใช่แค่เมื่อเปลี่ยนไดเรกทอรีที่พรอมต์คำสั่ง เป็นประโยชน์อย่างยิ่งสำหรับโปรแกรมเก่าที่มีกล่องโต้ตอบเรียกดูแบบเก่าที่มีตัวอักษรไดรฟ์อยู่ในระดับสูงสุดแทนที่จะเป็น "เดสก์ท็อป"


คุณสามารถแมปไดรฟ์และทำการแมปใหม่โดยอัตโนมัติหลังจากเข้าสู่ระบบ ไม่จำเป็นต้องใช้ subst
phuclv

1
@ LưuVĩnhPhúcมันอาจไม่สมเหตุสมผลทั้งหมด แต่ฉันมักจะหลีกเลี่ยงสิ่งต่าง ๆ ในเครือข่าย windows เว้นแต่ฉันจะต้องใช้มันจริงๆ ฉันรู้สึกว่าประสิทธิภาพและความน่าเชื่อถือคือ ... คาดเดาไม่ได้? โดยทั้งหมดหากคุณมีทางเลือกไม่ดีกว่าวิธีการทำโปรดโพสต์ไว้ในคำตอบของตัวเองเพื่อประโยชน์ของทุกคน :)
mo

6

คุณสามารถทำได้:

cd %homepath%

5
สิ่งนี้จะแตกถ้าคุณใช้ไดรฟ์อื่น - เช่นคุณอยู่บนเครื่องE:และ homedir ของคุณเปิดอยู่C:
Piskvor

4

คุณสามารถสร้างแบทช์ไฟล์ชื่อ~.batที่มี

@echo off
cd /d %USERPROFILE%

และเพิ่มลงในตัวแปร PATH ของคุณ (เริ่ม -> [คลิกขวาที่ "คอมพิวเตอร์"] -> คุณสมบัติ -> "การตั้งค่าระบบขั้นสูง" [ในคอลัมน์ซ้าย] -> "ตัวแปรสภาพแวดล้อม"

จากนั้นเพียงแก้ไขตัวแปร PATH ของคุณเพื่อรวมโฟลเดอร์ที่มี~.batไฟล์ของคุณ (สิ่งนี้ช่วยให้คุณสามารถเรียกใช้สคริปต์ของคุณได้จากทุกที่โดยใช้เพียงชื่อไฟล์ไม่ใช่เส้นทางที่แน่นอนไปยังไฟล์)

นอกจากนี้ตรวจสอบให้แน่ใจว่าPATHEXTตัวแปรสภาพแวดล้อมของคุณมี.BATบางแห่ง (สิ่งนี้อนุญาตให้คุณพิมพ์~แทน~.bat)

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


2

น่าเสียดายที่ฉันไม่รู้วิธีแก้ปัญหาที่สมบูรณ์แบบ แต่มีตัวเลือกแฮ็กอยู่สองตัว:

ตัวเลือกที่ 1: ตั้งค่า ~ ให้เป็นนามแฝงคำสั่งด้วย doskey

doskey ~=cd /d %USERPROFILE%

สิ่งนี้จะช่วยให้คุณพิมพ์ได้ง่าย ๆ~และให้ chdir กับ homedir ของคุณ

C:\>~
C:\Users\a>

เห็นได้ชัดว่านี่เป็นการลดจำนวนการกดแป้นเพื่อให้กลับบ้าน (แม้เมื่อเทียบกับ Linux) แต่มีความทนทานน้อยกว่าเนื่องจากคุณไม่สามารถใช้เป็นส่วนหนึ่งของเส้นทางอื่นหรือทำอะไรได้มากกว่าแค่อยู่บ้าน

ตัวเลือกที่ 2: ตั้งค่า ~ เป็นตัวแปร

ตัวเลือกอื่นหากคุณต้องการตัวเลือกที่มีประสิทธิภาพมากขึ้นคือการตั้งค่า var:

set ~="%USERPROFILE%"

แต่การใช้สิ่งนี้จะถูกใช้เช่น:

E:\>cd /d %~%
C:\Users\a>

นอกจากนี้ยังสามารถฉีดเข้าไปในเส้นทางส่วนใหญ่และไม่ จำกัด คุณเพียงแค่บ้าน cd'ing

ทั้งสองตัวเลือกพร้อมกัน

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

C:\>:: ECHO (display) THE VALUE OF %~%
C:\>echo %~%
C:\Users\a

C:\>:: ChDir to ~\DESKTOP
C:\>cd /d %~%\Desktop

C:\Users\a\Desktop>:: USE THE ~ COMMAND
C:\Users\a\Desktop>~

C:\Users\a>

อีกหนึ่งเคล็ดลับ (ที่เกี่ยวข้องกับ kinda):

นี่เป็นโอกาสน้อยที่จะได้รับการยอมรับในเครื่องขององค์กรอย่างน้อยในพีซีที่บ้านของคุณเพื่อประหยัดการกดแป้นเพิ่มเติมก็ไม่ใช่ความคิดที่ดีที่จะทำให้ชื่อของคุณ%USERPROFILE%เป็นเรื่องง่าย อย่างที่คุณเห็นจากตัวอย่างด้านบนผู้ใช้ของฉันคือC:\Users\a- ฉันเคยมี 'aplocher' หรือ 'adamp' เสมอและเมื่อฉันเปลี่ยนเป็นอักษรตัวเดียวมันวิเศษมาก


1

ใน Powershell %variable%ไวยากรณ์ไม่ทำงาน คุณสามารถทำได้:

cd $env:USERPROFILE

2
คุณสามารถใช้cd ~ใน PowerShell
wjandrea

0

เมื่อใช้ PowerShell คุณอาจลองใช้วิธีการต่อไปนี้เพื่อนำทางไดเรกทอรีจากที่ใดก็ได้หากคุณรู้จักชื่อผู้ใช้ของคุณและได้รับอนุญาตให้ใช้ไดเรกทอรีไฟล์

cd \..\Users\yourUserName\Documents
cd \..\Users\yourUserName\Downloads
cd \..\Users\yourUserName\Desktop
cd \..\Users\yourUserName\music

ดูตัวอย่างด้านล่างใน PowerShell (64 บิต) ฉันทดสอบสิ่งนี้ในกล่อง Windows 7 Pro 64 บิต

Linux Lilde เทียบเท่ากับ Windows 7 Pro 64 Bit

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