ไม่มีเหตุผลที่ดีที่จะทำเช่นนี้ ในความเป็นจริงผลกระทบที่เกิดขึ้นจริงเพียงอย่างเดียวคือการทำให้สิ่งต่าง ๆ ช้าลง
ผู้คนอาจคิดว่ามีเหตุผลที่ดีในการทำเช่นนี้ การใช้ CMD มีผลต่อไปนี้ซึ่งโดยทั่วไปสามารถทำได้ดีในบางกรณี:
- เปิดใช้งานคำสั่งภายในเช่น "
DIR
"
- ตั้งค่าตัวแปรสภาพแวดล้อมเช่นตัวแปร PATH
อย่างไรก็ตามในกรณีนี้ไม่ได้รับผลประโยชน์เหล่านั้น ลองดูสถานการณ์ทั้งสองนี้:
ดังนั้นในบางกรณีอาจมีเวลาที่การใช้ " CMD /C
" มีประโยชน์ ตัวอย่างเช่นถ้าฉันใช้คำสั่งภายนอกPSEXEC
(ดาวน์โหลดจาก SysInternals) แล้วลองเรียกใช้ " DIR
" บนคอมพิวเตอร์ระยะไกล Windows จะพยายามเรียกใช้DIR
คำสั่ง "" Windows จะไม่สามารถเรียกใช้คำสั่งนั้นได้เนื่องจากไม่มีไฟล์ " DIR.EXE
", " DIR.BAT
" หรือ " DIR
" ซึ่งลงท้ายด้วยนามสกุลที่รองรับอื่น (ส่วนขยายที่รองรับสามารถดูได้โดยเรียกใช้ " ECHO %PATHEXT%
")
อย่างไรก็ตามในสถานการณ์นี้ถ้าฉันพยายามเรียกใช้ " CMD /C DIR
" นั่นจะทำงานได้เพราะ Windows จะมองหาไฟล์ปฏิบัติการที่ชื่อ " CMD
" และจะพบว่าแล้วCMD
จะจบลงด้วยการเรียกใช้DIR
คำสั่ง "" ซึ่งเป็นภายในได้สำเร็จ ส่วนหนึ่งของCMD
คำสั่ง ""
ในกรณีนี้คุณสามารถเรียกใช้ได้powershell
อย่างง่ายดายเหมือนกับ " CMD /C powershell
" ดังนั้นคุณจะไม่ได้รับประโยชน์จากสิ่งที่ไม่จำเป็น " CMD /C
" ประโยชน์เพียงอย่างเดียวที่ฉันเห็นในขั้นตอนพิเศษของการพิมพ์ " CMD /C
" คือการให้ตัวอย่างซึ่งจะมีประโยชน์หากมีคนตัดสินใจลองปรับเปลี่ยนตัวอย่างเพื่อเรียกใช้บรรทัดคำสั่ง " DIR
" หรือ " COPY
" การมีตัวอย่างที่ยืดหยุ่นมากขึ้นอาจเป็นประโยชน์สำหรับบางคน มันไม่จำเป็นจริงๆเมื่อผู้คนรู้ว่าพวกเขากำลังทำอะไร
สำหรับสัญลักษณ์แสดงหัวข้อย่อยที่สองที่ฉันให้ซึ่งเป็นการตั้งค่าตัวแปรสภาพแวดล้อมนั่นเป็นสิ่งที่คุณไม่ได้ทำในกรณีนี้ บางทีบางคนคิดว่าพวกเขากำลังช่วยเรื่องต่าง ๆ โดยทำให้ตัวแปรสภาพแวดล้อมของเส้นทางถูกตั้งค่า อย่างไรก็ตามเมื่อคุณเรียกใช้คำสั่งโดยตรง (เช่นจากตัวเลือกเมนู "เรียกใช้" ของเมนูเริ่ม) ระบบปฏิบัติการ Windows อาจค้นหาคำสั่งในบางสถานที่เพิ่มเติม ตัวอย่างเช่นใน Windows XP / ใหม่กว่าคุณสามารถเรียกใช้:
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths"
หากคำสั่งที่คุณต้องการเรียกใช้อยู่ในรายการภายใต้ "เส้นทางของแอป" Windows อาจค้นหาโปรแกรมแม้ว่าจะไม่ได้อยู่ในเส้นทาง ดังนั้น Windows น่าจะพบมากกว่าสิ่งที่ CMD จะพบใน PATH ที่ CMD ใช้
ข้อดีอย่างหนึ่งที่เป็นไปได้คือถ้าคุณต้องการให้ CMD ทำงานเพื่อให้คุณสามารถอ้างถึงตัวแปรสภาพแวดล้อมเช่น% USERPROFILE% หรือ% LOGONSERVER% หรือ% TEMP% /% TMP% แต่เนื่องจากคุณไม่ได้ทำเช่นนั้น จำเป็นต้องเรียกใช้ " CMD /C
"
ดังนั้นสำหรับกรณีเฉพาะของคุณ: ไม่มีเหตุผลที่ดีที่จะทำ เอฟเฟกต์ที่คุณประสบความสำเร็จคือการทำให้คอมพิวเตอร์ของคุณทำงานได้มากขึ้นทำให้กระบวนการทำงานช้าลงและใช้หน่วยความจำเพิ่มขึ้น
cmd /c
...cmd /k
ค่อนข้างแตกต่างกันซึ่งจะทำให้หน้าต่างเปิดหลังจากคำสั่งเสร็จสมบูรณ์ สมมุติว่าผู้ถามทำเช่นนั้นเพื่อให้พวกเขาสามารถเห็นผลลัพธ์สำหรับวัตถุประสงค์ในการดีบั๊ก