ฉันจะเปิดโปรแกรมผ่านทางพรอมต์คำสั่งใน Windows 8 ได้อย่างไร


17

สมมติว่าฉันมีโปรแกรมชื่อและไดรฟ์ระบบปฏิบัติการของฉันคือany_program.exe C:ตำแหน่งของโปรแกรมคือD:\Any_Folder\any_program.exe

ฉันจะเริ่ม / เรียกใช้โปรแกรมนั้นผ่าน command prompt ใน Windows 8 ได้อย่างไร

ฉันลองใช้บรรทัดคำสั่งSTART any_program.exeแล้ว แต่มันแสดงให้ฉันเห็นข้อผิดพลาดว่า

Windows ไม่พบ 'any_program.exe' ตรวจสอบให้แน่ใจว่าคุณพิมพ์ชื่อถูกต้องแล้วลองอีกครั้ง

มันทำงานได้อย่างสมบูรณ์ใน Windows 7 และถ้าฉันพิมพ์START notepad.exeหรือSTART firefox.exe(Firefox ไม่ได้ติดตั้งในไดรฟ์ C:) มันทำงานได้ใน Windows 8


สิ่งนี้ไม่มีอะไรเกี่ยวข้องกับ Windows 8โดยเฉพาะใช่ไหม
Joey

ฉันคิดว่ามันจะ ใน windows 7 เฉพาะเส้นทางเท่านั้นที่ใช้งานได้ แต่ใน windows 8 พา ธ ของโปรแกรมต้องอยู่ระหว่างเครื่องหมายอัญประกาศ (สิ่งที่ฉันค้นพบ) หรือแสดงข้อผิดพลาดว่าไม่สามารถหาโปรแกรมได้ (หากเส้นทางไม่ได้ลงทะเบียนในตัวแปรสภาพแวดล้อม PATH หรือใน รีจิสทรีของแอป)
Ahmadul Hoq

2
@AhmadulHoq Windows 7 ทำงานในลักษณะเดียวกับที่ฉันรู้ คุณอาจมีไฟล์อยู่ในที่แห่งหนึ่ง
Bob

คำตอบ:


23

มีสามวิธีพื้นฐานในการเรียกใช้ 'คำสั่ง' ในพร้อมท์คำสั่ง

  • builtins ( "คำสั่งภายใน" )

    คำสั่งเหล่านี้เป็นคำสั่งที่สร้างไว้ใน cmd และไม่จำเป็นต้องมีการเรียกใช้โปรแกรมภายนอก พวกเขายังไม่ทำการค้นหาใด ๆ และจะถูกดำเนินการกับลำดับความสำคัญสูงสุดเสมอหากจับคู่ คุณสามารถบายพาสบิวอินโดยการตัดชื่อไฟล์ที่รันได้ในเครื่องหมายคำพูด: echoเรียกบิวด์อิน แต่"echo"จะค้นหากฎ cmd ต่อไปนี้

  • การร้องขอโดยตรง

    นี่คือเมื่อคุณระบุชื่อโปรแกรมโดยตรง (ไม่มีพา ธ ) ตัวอย่างเช่นถ้าคุณเรียกใช้cmd( cmd.exe) หรือipconfig( ipconfig.exe) ที่พรอมต์คุณกำลังเรียกคำสั่งภายนอกโดยตรง สิ่งนี้จะทำการค้นหาแบบ จำกัดซึ่งดำเนินการทั้งหมดภายในพรอมต์คำสั่งตามลำดับนี้:

    • ไดเรกทอรีปัจจุบัน
    • ไดเร็กทอรีที่แสดงรายการในตัวแปรสภาพแวดล้อม PATH

    (ขอบคุณdxivสำหรับความคิดเห็น)

  • ผ่านstartคำสั่ง

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

    • ไดเรกทอรีการทำงานปัจจุบัน
    • ไดเรกทอรี Windows
    • ไดเรกทอรี Windows \ System32
    • ไดเร็กทอรีที่แสดงรายการในตัวแปรสภาพแวดล้อม PATH
    • เส้นทางแอปที่กำหนดไว้สำหรับรีจิสทรี

    โปรดทราบว่ากล่องโต้ตอบเรียกใช้ใช้วิธีการค้นหานี้


ปกติคุณสามารถนำทางไปยังตำแหน่งของไฟล์ที่มีcd /d D:\Any_Folder( /dหมายถึงการเปลี่ยนแปลงไดรฟ์) any_program.exeและเพียงแค่เรียกใช้ D:\Any_Folder\any_program.exeหรือคุณสามารถระบุเส้นทางแบบเต็ม

หากคุณต้องการเริ่มด้วยstart any_program.exeคุณมีสองตัวเลือก:

  • คุณสามารถวางไว้ในไดเรกทอรี Windows หรือ System32 หรือไดเรกทอรีใด ๆ ในตัวแปรสภาพแวดล้อม PATH
  • คุณสามารถเพิ่มไดเรกทอรีที่ตั้งอยู่ใน ( D:\Any_Folder) ลงในตัวแปรสภาพแวดล้อม PATH ดูคำถามนี้สำหรับรายละเอียด
  • คุณสามารถเพิ่มลงในคีย์รีจิสทรีของ App Paths ได้เช่น Notepad และ Firefox แอพพา ธ เชื่อมโยงคีย์เวิร์ดของไฟล์ (เช่นfirefox.exe) กับพา ธ แบบเต็มไปยังไฟล์ซึ่งแตกต่างจากตัวเลือกอื่น ๆ ที่จัดการกับไดเรกทอรี ดูที่นี่สำหรับข้อมูลเพิ่มเติม

3
เพื่อความสมบูรณ์ก็ควรจะตั้งข้อสังเกตว่าการเรียกใช้โปรแกรมที่รับคำสั่งโดยตรงany_program.exeไม่ได้ค้นหาคีย์ App เส้นทางในขณะที่ทำงานเป็นstart any_program.exeไม่เช่นบนเริ่มต้น Win7 ติดตั้งเข้าwordpadที่พรอมต์ให้not recognizedเกิดข้อผิดพลาดในขณะที่start wordpadประสบความสำเร็จในการเปิดตัว WordPad ( ขึ้นอยู่กับคีย์ App Paths) เหตุผลทางเทคนิคคือเพจที่เชื่อมโยงอ้างถึง ShellExecuteEx (ซึ่งstartใช้) ในขณะที่ CreateProcess (การดำเนินการโดยตรงที่ใช้) กล่าวถึงเฉพาะว่าไม่มีการค้นหาเส้นทางแอป
dxiv

@dxiv ขอบคุณ เปิดใช้งานการเรียกใช้โดยตรงผ่าน cmd ค้นหาเฉพาะไดเรกทอรี cwd และ PATH ฉันจะแก้ไขในไม่ช้า
บ๊อบ

1
ขอขอบคุณนั่นเป็นความเห็นที่รวดเร็วสำหรับความคิดเห็นที่ล่าช้า 3 ปี ;-) docs-link ที่เกี่ยวข้องคือ msdn.microsoft.com/en-us/library/windows/desktop/ms682425.aspxแต่ฉันไม่มีที่จะรวมไว้ ในความคิดเห็นก่อนหน้า ตรรกะการค้นหาแสดงอยู่ใน # 1-6 ภายใต้ lpCommandLine
dxiv

1
@dxiv ขอบคุณสำหรับลิงค์ ฉันยังได้แก้ไขว่าแม้ว่ามันจะดูเหมือนจะไม่ตรงกับพฤติกรรมที่เห็นฉัน ... (ลอง: set path=ตามมาด้วยcmdไม่สามารถหาได้ แต่start cmdทำงานเป็นก็ยังคงค้นหาเส้นทางนอก var การ env)
Bob

1
ขอบคุณสำหรับการตรวจสอบซ้ำสองครั้ง เป็นจริงในกรณีที่การดำเนินการโดยตรง cmd ไม่ได้ค้นหาไดเรกทอรี windows / system โดยค่าเริ่มต้นและฉันผิดที่ชี้ไปที่เอกสาร CreateProcess ดูเหมือนว่า cmd มีตรรกะของตัวเองตามส่วน "ลำดับการค้นหาคำสั่ง" ภายใต้technet.microsoft.com/en-us/library/…ย้อนหลังไปถึงอย่างน้อย NT ครั้งและเป็นไปได้มากที่สุดตลอดกาลมาก่อน
dxiv

7
start D:\Any_Folder\any_program.exe

หรือเมื่อพา ธ หรือไฟล์มีช่องว่าง

start "" "D:\Any_Folder\any_program.exe"

start any_program.exeใช้งานได้เฉพาะกับโปรแกรมเหล่านั้นซึ่งอยู่ใน%PATH%ตัวแปรสภาพแวดล้อมหรือลงทะเบียนในรีจิสทรีในคีย์HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App PathsหรือHKEY_CURRENT_USERอะนาล็อก


5

คุณมีสองทางเลือก:

  1. เพิ่มโปรแกรมลงใน%PATH%ตัวแปรของคุณ
  2. ใช้เครื่องหมายคำพูดในทางลัดของคุณ

รายละเอียด:

กำลังเพิ่มany_program.exeไปยังเส้นทาง:

  1. ไปที่ "แผงควบคุม" -> "การตั้งค่าระบบขั้นสูง"
    การตั้งค่าระบบขั้นสูง
  2. ไปที่แท็บขั้นสูง
    การตั้งค่าระบบ

  3. คลิกที่ "ตัวแปรสภาพแวดล้อม" เพิ่มโฟลเดอร์ที่มี any_program.exe อยู่ แก้ไข PATH ตัวแปรและเพิ่มโฟลเดอร์ในท้ายที่สุดคั่นด้วย a;
    ตัวแปรพา ธ

  4. ตอนนี้คุณสามารถใช้ any_program.exe ในกล่องโต้ตอบเรียกใช้ (ลองออกจากระบบและย้อนกลับเพื่อให้แน่ใจว่ามีการใช้การเปลี่ยนแปลงตัวแปรพา ธ ของคุณ)

ใช้เส้นทางที่สมบูรณ์

แทนที่จะใช้any_program.exeในกล่องโต้ตอบ Run คุณต้องใช้ PATH ที่สมบูรณ์ ดังนั้นพิมพ์D:\Stuff\App\any_program.exeในกล่องโต้ตอบเรียกใช้แทน


ภาพหน้าจอเหล่านั้นเป็น WAAAY ถึงใหญ่ มีขนาดที่เหมาะสมหรือไม่
Geek

กำลังดำเนินการ ...
Nemo

ไดเรกทอรีเส้นทางบน Windows ถูกคั่นด้วยเครื่องหมายอัฒภาค ( ;) ไม่ใช่เครื่องหมายจุดคู่ ( :) ...
Bob

ฉันมีสิ่งนั้นในใจ แต่ก็ยังพิมพ์ผิดอยู่
Nemo

ภาพหน้าจอที่นำมาจากc-sharpcorner.com/UploadFile/6cde20/…เห็นได้ชัด ภาพหน้าจอมีแย่มาก
Journeyman Geek

1
  1. เปิดพร้อมท์คำสั่ง
  2. พิมพ์ชื่อของโปรแกรมที่คุณต้องการเรียกใช้ หากอยู่ในตัวแปร PATH ของระบบมันจะถูกเรียกใช้งาน ถ้าไม่คุณจะต้องพิมพ์เส้นทางแบบเต็มไปยังโปรแกรม ตัวอย่างเช่นเมื่อต้องการเรียกใช้D: \ Any_Folder \ any_program.exeพิมพ์D: \ Any_Folder \ any_program.exeบนพรอมต์คำสั่งแล้วกดEnter

ฮ่าฮ่าเคล็ดลับดี!
Ahmadul Hoq

1

ฉันใช้วิธีการที่เรียบง่าย . .
คัดลอกทางลัดของไฟล์ไปยัง C: \ users \ name จากนั้นพิมพ์ชื่อของทางลัดในกล่องโต้ตอบเรียกใช้ . . . .


0

ฉันเดาว่าคุณต้องเพิ่มเส้นทางไปยังตัวแปร PATH ในตัวแปรระบบ


0

ใช้ CMD เพื่อทำสิ่งนี้แทน GUI

  1. การทำให้ตำแหน่งไฟล์ที่เรียกทำงานได้พร้อมใช้งานใน CMD เช่นการสร้างPATHตัวแปร:

    ตัวอย่างเช่น:

    • สถานการณ์จำลอง: คุณต้องการเปิด Acrobat จาก CMD
    • SET PATH: ในประเภท CMD

      SET ACROBAT="C:\Program Files (x86)\Adobe\Acrobat 11.0\Acrobat"
      
  2. การเรียกใช้งานไฟล์จาก CMD:

    ในประเภท CMD:

    START ACROBAT
    

แค่นั้นแหละ !!!
ฉันหวังว่านี่จะเป็นประโยชน์

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