ฉันพยายามที่จะใช้คำสั่งพร้อมที่จะย้ายไฟล์บางผมใช้ลินุกซ์มินัลที่ผมใช้~
ในการระบุไดเรกทอรีบ้านของฉันฉันได้มองทุก แต่ฉันไม่สามารถดูเหมือนจะพบว่ามันสำหรับ Windows พร้อมรับคำสั่ง ( Documents and Settings\[user]
)
ฉันพยายามที่จะใช้คำสั่งพร้อมที่จะย้ายไฟล์บางผมใช้ลินุกซ์มินัลที่ผมใช้~
ในการระบุไดเรกทอรีบ้านของฉันฉันได้มองทุก แต่ฉันไม่สามารถดูเหมือนจะพบว่ามันสำหรับ Windows พร้อมรับคำสั่ง ( Documents and Settings\[user]
)
คำตอบ:
คุณจะต้องผิดหวัง: %userprofile%
คุณสามารถใช้เทอร์มินัลอื่นได้ Powershell ซึ่งฉันเชื่อว่าคุณสามารถใช้ XP และใหม่กว่า (และติดตั้งมาพร้อมกับ Win7) ช่วยให้คุณสามารถใช้~
สำหรับโฮมไดเร็กตอรี่ได้
คุณสามารถ%HOMEDRIVE%%HOMEPATH%
สำหรับไดรฟ์ + หรือ\docs settings\username
\users\username
คุณสามารถใช้%systemdrive%%homepath%
ตัวแปรสภาพแวดล้อมเพื่อทำสิ่งนี้ให้สำเร็จ
ตัวแปรคำสั่งสองตัวที่ต่อกันจะให้พา ธ โฮมไดเร็กทอรีของผู้ใช้ที่คุณต้องการดังนี้:
การรันecho %systemdrive%
พร้อมรับคำสั่งให้:
C:
การรันecho %homepath%
พร้อมรับคำสั่งให้:
\Users\<CurrentUserName>
เมื่อใช้ร่วมกันมันจะกลายเป็น:
C:\Users\<CurrentUserName>
%systemdrive%
ตัวแปรสภาพแวดล้อมซึ่งเทียบเท่า%homedrive%
กับที่ Alex พูดถึง กรุณาให้ข้อเสนอแนะของคุณเกี่ยวกับเรื่องนี้ถ้าคุณพบว่ามีอะไรไม่ถูกต้อง
อัพเดท - เวอร์ชั่นที่ดีกว่า 18 กรกฎาคม 2019
บทสรุปสุดท้ายแม้ว่าฉันจะย้ายไปที่ PowerShell สำหรับการทำงานของคอนโซล Windows ส่วนใหญ่แล้ว แต่ฉันตัดสินใจที่จะสรุปปัญหา cmd เก่านี้ขึ้นฉันต้องเข้าสู่ cmd console ในวันนี้และการขาดคุณสมบัตินี้ทำให้ฉันประทับใจจริงๆ อันนี้ใช้ได้กับช่องว่างในที่สุดซึ่งคำตอบก่อนหน้าของฉันจะล้มเหลว
นอกจากนี้ตอนนี้อันนี้ยังสามารถใช้ ~ เป็นคำนำหน้าสำหรับโฟลเดอร์ย่อยโฮมอื่น ๆ ได้เช่นกันและมันจะสลับไปข้างหน้าสแลชไปยังแบ็กสแลชด้วยเช่นกัน ดังนั้นนี่คือ;
ขั้นตอนที่ 1 สร้างมาโครdoskeyเหล่านี้ที่ใดก็ตามที่พวกเขาถูกเรียกขึ้นมาทุกครั้งที่ cmd เริ่มทำงาน
DOSKEY cd=cdtilde.bat $*
DOSKEY cd~=chdir /D "%USERPROFILE%"
DOSKEY cd..=chdir ..
ขั้นตอนที่ 2 สร้างไฟล์cdtilde.batและวางไว้ที่อื่นใน PATH ของคุณ
@echo off
set dirname=""
set dirname=%*
set orig_dirname=%*
:: remove quotes - will re-attach later.
set dirname=%dirname:\"=%
set dirname=%dirname:/"=%
set dirname=%dirname:"=%
:: restore dirnames that contained only "/"
if "%dirname%"=="" set dirname=%orig_dirname:"=%
:: strip trailing slash, if longer than 3
if defined dirname if NOT "%dirname:~3%"=="" (
if "%dirname:~-1%"=="\" set dirname="%dirname:~0,-1%"
if "%dirname:~-1%"=="/" set dirname="%dirname:~0,-1%"
)
set dirname=%dirname:"=%
:: if starts with ~, then replace ~ with userprofile path
if %dirname:~0,1%==~ (
set dirname="%USERPROFILE%%dirname:~1%"
)
set dirname=%dirname:"=%
:: replace forward-slashes with back-slashes
set dirname="%dirname:/=\%"
set dirname=%dirname:"=%
chdir /D "%dirname%"
ทดสอบอย่างดีกับ;
cd ~ (traditional habit)
cd~ (shorthand version)
cd.. (shorthand for going up..)
cd / (eg, root of C:)
cd ~/.config (eg, the .config folder under my home folder)
cd /Program Files (eg, "C:\Program Files")
cd C:/Program Files (eg, "C:\Program Files")
cd \Program Files (eg, "C:\Program Files")
cd C:\Program Files (eg, "C:\Program Files")
cd "C:\Program Files (eg, "C:\Program Files")
cd "C:\Program Files" (eg, "C:\Program Files")
โอ้ฉันยังอนุญาตให้ใช้การอ้างอิงแบบขี้เกียจซึ่งฉันพบว่ามีประโยชน์แม้ว่าช่องว่างจะอยู่ในชื่อพา ธ ของโฟลเดอร์เนื่องจากมันจะตัดอาร์กิวเมนต์ทั้งหมดราวกับว่ามันเป็นสตริงยาวหนึ่งเส้น ซึ่งหมายความว่าเพียงแค่คำพูดเริ่มต้นยังใช้งานได้หรือสมบูรณ์โดยไม่มีคำพูดยังใช้งานได้
สิ่งอื่น ๆ ด้านล่างทั้งหมดอาจถูกเพิกเฉยตอนนี้เหลือไว้สำหรับเหตุผลทางประวัติศาสตร์ดังนั้นฉันจึงไม่ทำผิดพลาดอีกครั้ง
การอัปเดตเก่า 19 ต.ค. 2561
ในกรณีที่คนอื่นลองใช้แนวทางของฉันคำตอบดั้งเดิมของฉันด้านล่างไม่รองรับช่องว่างเช่นการล้มเหลวต่อไปนี้
> cd "c:\Program Files"
Files""]==["~"] was unexpected at this time.
ฉันคิดว่าจะต้องมีวิธีการแก้ปัญหานั้น จะโพสต์อีกครั้งหากฉันสามารถปรับปรุงคำตอบของฉัน (ดูด้านบนในที่สุดฉันก็ใช้งานได้ตามที่ฉันต้องการ)
คำตอบเดิมของฉันยังต้องการงาน ... 7 ต.ค. 2561
ฉันแค่พยายามทำวันนี้และฉันคิดว่าฉันเข้าใจแล้วนี่คือสิ่งที่ฉันคิดว่าใช้ได้ดี
ก่อนอื่นมาโครdoskeyบางอัน ;
DOSKEY cd=cdtilde.bat $*
DOSKEY cd~=chdir /D "%USERPROFILE%"
DOSKEY cd..=chdir ..
แล้วจากนั้นไฟล์ค้างคาวในเส้นทางของฉัน;
cdtilde.bat
@echo off
if ["%1"]==["~"] (
chdir /D "%USERPROFILE%"
) else (
chdir /D %*
)
สิ่งเหล่านี้ดูเหมือนจะใช้ได้ดี
cd ~ (traditional habit)
cd~ (shorthand version)
cd.. (shorthand for going up..)
.bashrc
ไฟล์ประเภท: superuser.com/questions/144347/... การใส่ขั้นตอนที่ 1 จากคำตอบนี้ลงในbashrc.bat
ไฟล์จะเป็นการตั้งค่าเมื่อเริ่มต้น
หากคุณต้องการรุ่นที่สั้นกว่าของเจย์คุณสามารถลอง
set usr=%userprofile%
cd %usr%
หรือคุณสามารถใช้% u% ได้ถ้าต้องการ มันบันทึกการกดแป้นบางอย่างอยู่ดี
คุณสามารถทำสิ่งเดียวกันได้ด้วยตัวเอง เปิดตัวแปรสภาพแวดล้อมและคลิกปุ่ม "ใหม่" ใน "ตัวแปรผู้ใช้สำหรับ ... "
ชื่อตัวแปร: ~
ค่าตัวแปร:คลิกปุ่ม "เรียกดูไดเรกทอรี ... " และเลือกไดเรกทอรีที่คุณต้องการ
และหลังจากนี้คำสั่งเปิดและพิมพ์นี้:
cd%
~% มันได้ผล.
ฉันแค่พยายามset ~=%userprofile%
และมันก็ใช้ได้เช่นกันหากคุณต้องการใช้นิสัยแบบเดิมต่อไป
คุณสามารถใช้%~%
แทน
~
= ได้%userprofile%
อย่างไร? ฉันวิ่งคำสั่งที่ถูกต้องกล่าวถึงในบทความของคุณบนพร้อมรับคำสั่ง แต่มันจะพ่นข้อผิดพลาด '~' is not recognized as an internal or external command, operable program or batch file.
- คุณช่วยอธิบายเพิ่มเติมเล็กน้อยในคำตอบของคุณได้ไหม?
set ~=%userprofile%
คุณสามารถใช้%~%
สำหรับตัวแปร
เพียงแค่เขียนบทการทำเช่นนี้โดยไม่ต้องพิมพ์มากเกินไปขณะที่ยังคงพกพาการตั้งค่า~
ที่จะ%userprofile%
ตอบสนองความต้องการการติดตั้งด้วยตนเองบนคอมพิวเตอร์ที่ใช้ Windows แต่ละขณะที่โคลนและการตั้งค่าไดเรกทอรีเป็นส่วนหนึ่งของPATH
กล
ง่ายดาย
กำหนดเส้นทางแรก
doskey ~=cd %homepath%
จากนั้นเข้าถึง
~
นอกจากนี้คุณยังสามารถทำแผ่นซีดี ...... \ หลาย ๆ ครั้งเนื่องจากมีโฟลเดอร์ที่นำคุณไปยังโฮมไดเร็กตอรี่ ตัวอย่างเช่นหากคุณอยู่ใน cd: \ windows \ syatem32 ดังนั้น cd .... \ จะพาคุณไปที่บ้านนั่นคือ c: \
C:\Users\username
โฟลเดอร์ (หรือc:\Documents and Settings\username
ใน Windows รุ่นก่อนหน้า)
C:\
ก็ควรที่จะใช้cd \
แทนจำนวนที่ไม่ได้กำหนดcd ..\..\..