ฉันต้องการใช้ ls ในพรอมต์คำสั่งของ windows และเรียกใช้คำสั่ง dir
ฉันจะทำเช่นนั้นได้อย่างไร?
ฉันต้องการใช้ ls ในพรอมต์คำสั่งของ windows และเรียกใช้คำสั่ง dir
ฉันจะทำเช่นนั้นได้อย่างไร?
คำตอบ:
คุณสามารถ:
ls.bat
และมีdir
คำสั่งเท่านั้นls.bat
ไฟล์ให้กับPATH
ตัวแปรสภาวะแวดล้อมของคุณจากนั้นคุณสามารถดำเนินการls
จากพรอมต์คำสั่ง
ls dir
หรือไม่ถ้าคุณใช้กับ args:? ฉันคิดว่าคุณจะต้องแก้ไขls.bat
เพื่อจัดการ args ... หรือคุณอาจลองใช้นามแฝง: superuser.com/questions/49170/create-an-alias-in-windows-xp
คุณสามารถแก้คำถามนี้ได้ด้วยคำสั่งง่ายๆ:
echo @dir %* > %systemroot%\system32\ls.bat
ตรวจสอบให้แน่ใจว่าคุณทำงานcmd.exe
ในฐานะผู้ดูแลระบบก่อนหากคุณใช้ vista ขึ้นไป
dir %*
แทนเพื่ออนุญาตให้ส่งผ่านอาร์กิวเมนต์บรรทัดคำสั่งจำนวนเท่าใดก็ได้ไปยัง dir ผ่าน ls.bat มิฉะนั้นการใช้dir %1
อย่างมากคุณสามารถใช้อาร์กิวเมนต์เดียวเมื่อใช้สคริปต์ ls
@dir %*
นี้จะลบบรรทัดพิเศษออกไปด้วยเพื่อให้เหมือนกันมากขึ้นdir
@
; ไวยากรณ์ที่ดีที่จะใช้เพื่อหลีกเลี่ยงความยุ่งเหยิงของผลลัพธ์ แม้ว่ามันจะง่ายกว่ามากถ้า Windows เป็นไปตาม POSIX อย่างน้อยเราก็ได้ฝัน
เป็นคำถามเก่า แต่สำหรับบันทึก:
http://gnuwin32.sourceforge.net/packages/coreutils.htm
ให้คุณและอีกมากมาย!
ls *
และdir *
อย่าทำแบบเดียวกันดังนั้น aliasing dir จึงเป็นกางเกงเล็กน้อย
C:\Program Files (x86)\GnuWin32\bin
เส้นทางของคุณ
วิธีที่ง่ายที่สุดที่ฉันพบคือ:
bin
ไดเร็กทอรีของ Git ในตัวแปร Path ของคุณ เหมืองตั้งอยู่ในC:\Program Files\Git\usr\bin
.ls
ความรุ่งโรจน์ls
และทั้งหมดนี้เป็นอาร์กิวเมนต์เสริม เพียงอัปเดตเล็กน้อยฉันได้ติดตั้ง git เวอร์ชันล่าสุดสำหรับ windows แล้วและตอนนี้ls.exeสามารถพบได้ใน C: \ Program Files \ Git \ usr \ bin
ฉันมีวิธีแก้ปัญหา แต่มันสกปรก:
สร้างไฟล์ชื่อ ls.bat ที่มีเฉพาะ "dir"
วางไว้ใน C: \ windows \ system32 (หรือไดเร็กทอรีใด ๆ ใน PATH env var)
ที่ (ควร) ได้ผล!
แก้ไข: สิ่งที่สอดคล้องกันมากขึ้น: /superuser/49170/create-an-alias-in-windows-xp
หากคุณติดตั้งNode.jsในระบบของคุณคุณสามารถติดตั้งได้จากCashซึ่งเป็นไลบรารีที่ฉันเขียนสำหรับคำสั่ง Linux บน Windows:
npm install cash-ls -g
npm install cash-global -g
ทางออกที่ดีที่สุดเท่าที่เคยมีผู้ใช้ลินุกซ์บนหน้าต่าง จะเป็นการดีที่จะเพิ่มls -l
เป็นll
(LL) ด้วย
พรอมต์คำสั่งของ Windows สำหรับ Vista / 7 จะอนุญาตลิงก์สัญลักษณ์ NTFS เรียกใช้ cmd.exe ในฐานะผู้ดูแลระบบจากนั้น:
mklink ls %System%\dir.exe
จากนั้นตั้งค่าตัวแปรสภาพแวดล้อม PATH ของคุณเพื่อรวมตำแหน่งของลิงก์ที่คุณเพิ่งสร้างขึ้น
หากคุณต้องการมากกว่าเพียงแค่คำสั่ง 'LS' คุณควรมีลักษณะเป็นCygwin
แก้ไข - เพิ่งตระหนักว่าdir.exe
ไม่ใช่โปรแกรมแยกต่างหากดังนั้นจึงไม่ได้ผลจริงๆ แต่mklink
cygwin เป็นสิ่งที่ดีที่ควรรู้
+1 ในโพสต์ด้านบนแนะนำให้ติดตั้ง git สำหรับ windows และเพิ่มไดเร็กทอรี bin ให้กับตัวแปรพา ธ ของคุณ
อีกวิธีหนึ่งที่ฉันได้สัมผัส ls และคำสั่ง UNIX อื่น ๆ อีกมากมายที่ทำงานใน cmd.exe บนเครื่อง Windows 8 และ Windows 7 ของฉัน
ไปที่ไซต์ต่อไปนี้เพื่อติดตั้ง Cygwin
https://www.cygwin.com/install.html
ติดตั้งเวอร์ชัน 32 หรือ 64 บิตสำหรับระบบของคุณ การตั้งค่าเริ่มต้นและแพ็คเกจควรมีสิ่งที่คุณต้องการดังนั้นคุณจึงไม่ต้องเปลี่ยนแปลงอะไรเลยเมื่อคุณไปที่หน้าจอแพ็คเกจ
หลังจากการติดตั้งคัดลอกเส้นทางโฟลเดอร์ Cygwin ไปยังตัวแปรเส้นทางสภาพแวดล้อมของคุณ ตัวอย่างเช่น; หากคุณติดตั้ง cygwin ใน C: \ Cygwin คุณจะเพิ่มสิ่งต่อไปนี้ในตัวแปรเส้นทางระบบสภาพแวดล้อมของคุณ:
; C: \ Cygwin \ bin
ในระบบของฉันฉันติดตั้งเวอร์ชัน 64 บิตและชื่อโฟลเดอร์และเส้นทางเริ่มต้นคือ C: \ cygwin64 ดังนั้นฉันจึงเพิ่มสิ่งต่อไปนี้ในตัวแปรเส้นทางสภาพแวดล้อมระบบของฉัน:
; C: \ cygwin64 \ bin
รีสตาร์ทเทอร์มินัลของคุณหากเปิดอยู่ จากนั้นพิมพ์ ls แล้วคุณจะเห็นรายการไดเร็กทอรี
ดูสิ่งต่อไปนี้หากคุณไม่คุ้นเคยกับการตั้งค่าตัวแปรสภาพแวดล้อม PATH:
หากคุณต้องการให้ cmd รู้จักls
เป็นนามแฝงdir
คุณสามารถใช้doskey
คำสั่ง (จากคำตอบนี้ใน superuser )
สิ่งนี้ไม่เปลี่ยนการจัดการพารามิเตอร์บรรทัดคำสั่งดั้งเดิมของคำสั่ง dir
คุณยังสามารถใช้cygwinและใช้คำสั่ง ls ได้โดยตรงพร้อมกับเครื่องมือบรรทัดคำสั่ง unix อื่น ๆ ที่คุณอาจคุ้นเคย
ls.bat ของฉันอยู่ด้านล่าง
@dir %*
ที่สามารถโอน cli args
ls /b
ls /w
ใส่ไว้ใน% windir% หรือไดเร็กทอรีใด ๆ ในตัวแปร% PATH% ของคุณ
ตรวจสอบให้แน่ใจว่าคุณบันทึกไฟล์ด้วยการเข้ารหัส ANSI :)
ขอแนะนำสูตรต่อไปนี้
DOSKEY
และ$*
เพื่อสร้างls
คำสั่งของคุณตัวอย่างเช่นคำสั่งของคุณอาจดูเหมือนว่า
DOSKEY ls=dir
DOSKEY sublime="C:\Program Files\Sublime Text 2\sublime_text" $*
$*
มีประโยชน์สำหรับคำสั่งที่ใช้กับอาร์กิวเมนต์ sublime my_code.c
ยกตัวอย่างเช่นที่นี่ผมชอบที่จะสามารถที่จะทำ
รีจิสทรีสำหรับ cmd อยู่ที่ HKEY_CURRENT_USER -> Software -> Microsoft -> Command Processor สร้างรายการที่มีค่าสตริงที่เรียกว่า AutoRun ด้วยพา ธแบบเต็มของไฟล์ (ไม่ใช่โฟลเดอร์ที่มี) เช่น%USERPROFILE%\custom_command.cmd
. จากนั้นทุกครั้งที่เรียกใช้ cmd คำสั่งของคุณจะถูกโหลด!
คุณสามารถเพิ่มสิ่งที่มีประโยชน์ลงในไฟล์แบตช์ได้เช่นกัน ดูที่นี่เช่นแม่แบบ
การแก้ปัญหาที่ทำงานสำหรับฉันก็คือการใช้UnxUtilsซึ่งจะเพิ่มสาธารณูปโภคหลายรายการจากไฟล์ปฏิบัติการ (รวมทั้งls
, sed
และgrep
)
วิธีใช้: ดาวน์โหลดรหัสที่มา เปิดเครื่องรูด เพิ่มUnxUtils\usr\local\wbin
เส้นทางไปยังตัวแปร Windows PATH เริ่มอินสแตนซ์ CMD ใหม่
แน่นอนว่า ls จะไม่ทำงานเป็นคำสั่ง unix สำหรับแบทช์ หากคุณตรวจสอบ% 1 สำหรับ -l หรือ -a เป็นต้นและชุดค่าผสมทั้งหมดจะใช้ได้ ...
คุณสามารถทำตามคู่มือนี้: https://gist.github.com/vladikoff/38307908088d58af206b
TL; DR : ส่งผ่าน/K path/to/custom/init_cmd.bat
ไปยังคำสั่ง "เชลล์เริ่มต้น" ของคุณ
ฉันใช้ ConsoleZ เป็นกระดาษห่อเปลือกของฉันดังนั้นในกรณีของฉันฉันสามารถหาตัวเลือกการตั้งค่าใน "แท็บ" แล้วฉันกำหนดเส้นทางเปลือกเช่นนี้"C:\Windows\System32\cmd.exe "/K C:\cmd_init.bat""
C:\cmd_init.bat
สคริปต์ชุดงานที่มีมาโครของฉันอยู่ที่ไหนนี่คือสิ่งที่ฉันจะไป:
@echo off
doskey ls=dir /b
rem other macro stuff..
ขออภัยสำหรับการจัดรูปแบบและความผิดพลาดอื่น ๆ นี่เป็นครั้งแรกที่ฉันตอบที่นี่ ฉันหวังว่ามันจะช่วยได้!
ผู้ที่ใช้ Linux Subsystem สำหรับ Windows สามารถโทรls
จาก Linux bash คำสั่งต่อไปนี้สร้างls
คำสั่งใน System32:
echo @bash -c "ls %*" > %systemroot%\system32\ls.bat
(ต้องเปิดใช้งาน / ติดตั้งคุณลักษณะ Linux Subsystem ก่อน)
นี่คือซอร์สโค้ด C # และไบนารีของฉัน
เพียงเพิ่ม ls.exe ที่ใดที่หนึ่งและเพิ่มเส้นทางไปยังตัวแปรสภาพแวดล้อมเส้นทาง