Làm cách nào để mở chương trình qua dấu nhắc lệnh trong Windows 8?


17

Giả sử tôi có một chương trình có tên any_program.exevà ổ đĩa hệ điều hành của tôi là C:. Địa điểm của chương trình làD:\Any_Folder\any_program.exe

Làm cách nào để bắt đầu / thực hiện chương trình đó thông qua dấu nhắc lệnh trong Windows 8?

Tôi đã thử dòng lệnh START any_program.exe, nhưng nó cho tôi thấy một lỗi

Windows không thể tìm thấy 'any_program.exe'. Hãy chắc chắn rằng bạn đã gõ tên chính xác, và sau đó thử lại.

Nhân tiện, nó hoạt động hoàn hảo trong Windows 7. Và, nếu tôi gõ START notepad.exehoặc START firefox.exe(Firefox không được cài đặt trong ổ C:), nó hoạt động trong Windows 8.


Điều này thực sự không liên quan gì đến Windows 8 , phải không?
Joey

Tôi đoán nó làm. Trong windows 7, chỉ có đường dẫn sẽ hoạt động. Nhưng trong windows 8, đường dẫn của chương trình phải nằm giữa các dấu ngoặc kép (những gì tôi đã tìm ra) hoặc nó hiển thị lỗi rằng nó không thể định vị chương trình (nếu đường dẫn không được đăng ký trong biến môi trường PATH hoặc trong Đăng ký ứng dụng).
Ahmadul Hoq

2
@AhmadulHoq Windows 7 hoạt động theo cùng một cách, theo như tôi biết. Bạn có thể đã có các tập tin ở một trong những nơi đó.
Bob

Câu trả lời:


24

Có ba cách cơ bản để chạy 'lệnh' trong Dấu nhắc lệnh.

  • nội trang ( "lệnh nội bộ" )

    Đây là các lệnh được xây dựng trong chính cmd và không yêu cầu gọi chương trình bên ngoài. Họ cũng không thực hiện bất kỳ tìm kiếm nào và sẽ luôn được thực hiện với mức ưu tiên cao nhất nếu phù hợp. Bạn có thể bỏ qua các nội trang bằng cách gói tên thực thi trong dấu ngoặc kép: echogọi nội trang, nhưng "echo"sẽ tìm kiếm theo quy tắc cmd.

  • Gọi trực tiếp

    Đây là khi bạn trực tiếp chỉ định một tên chương trình (không có đường dẫn). Ví dụ: nếu bạn chạy cmd( cmd.exe) hoặc ipconfig( ipconfig.exe) tại dấu nhắc, bạn đang gọi trực tiếp lệnh bên ngoài. Điều này thực hiện tìm kiếm hạn chế được thực hiện hoàn toàn trong Dấu nhắc lệnh, theo thứ tự này:

    • Thư mục hiện tại.
    • Các thư mục được liệt kê trong biến môi trường PATH.

    (cảm ơn dxiv vì những bình luận)

  • Thông qua startmệnh lệnh

    Khi bạn cố gắng thực thi một tệp thông qua startlệnh, Dấu nhắc lệnh không thực hiện bất kỳ tìm kiếm nào. Thay vào đó, nó chuyển tên tệp (và đối số) cho chính Windows (thông qua lệnh ShellExecuteExgọi API), sau đó phải tìm kiếm vị trí của tệp. Có một số nơi nó tìm kiếm theo thứ tự sau:

    • Thư mục làm việc hiện tại
    • Thư mục Windows
    • Thư mục Windows \ System32
    • Các thư mục được liệt kê trong biến môi trường PATH
    • Đăng ký đường dẫn ứng dụng được xác định

    Lưu ý rằng hộp thoại Run cũng sử dụng phương pháp tìm kiếm này.


Thông thường, bạn có thể điều hướng đến vị trí của tệp bằng cd /d D:\Any_Folder( /dcó nghĩa là thay đổi ổ đĩa) và chỉ cần chạy any_program.exe. Ngoài ra, bạn có thể chỉ định đường dẫn đầy đủ D:\Any_Folder\any_program.exe.

Nếu bạn muốn bắt đầu với nó start any_program.exe, bạn có một vài lựa chọn:

  • Bạn có thể đặt nó trong các thư mục Windows hoặc System32 hoặc bất kỳ thư mục nào trong biến môi trường PATH.
  • Bạn có thể thêm thư mục nằm trong ( D:\Any_Folder) vào biến môi trường PATH, xem câu hỏi này để biết chi tiết.
  • Bạn có thể thêm nó vào khoá đăng ký Đường dẫn ứng dụng, giống như Notepad và Firefox. Đường dẫn ứng dụng liên kết một từ khóa tệp (chẳng hạn như firefox.exe) với đường dẫn đầy đủ đến tệp, không giống như các tùy chọn khác liên quan đến thư mục. Xem ở đây để biết thêm thông tin.

3
Để đầy đủ, cần lưu ý rằng việc chạy chương trình tại dấu nhắc lệnh trực tiếp vì any_program.exekhông tìm kiếm khóa Đường dẫn ứng dụng, trong khi chạy nó như start any_program.exeví dụ trên cài đặt Win7 mặc định, nhập vào wordpaddấu nhắc sẽ not recognizedbáo lỗi, trong khi start wordpadkhởi chạy thành công wordpad ( dựa trên khóa Đường dẫn ứng dụng của nó). Lý do kỹ thuật là trang được liên kết đề cập đến ShellExecuteEx ( startsử dụng) trong khi CreatProcess (sử dụng thực thi trực tiếp) đề cập cụ thể rằng Đường dẫn ứng dụng không được tìm kiếm.
dxiv

@dxiv Cảm ơn. Hóa ra việc gọi trực tiếp qua cmd chỉ tìm kiếm các thư mục được liệt kê cwd và PATH. Tôi sẽ sửa đổi ngay.
Bob

1
Cảm ơn, đó là nhanh chóng cho một nhận xét muộn 3 năm ;-) Liên kết tài liệu có liên quan là msdn.microsoft.com/en-us/l Library / windows / desktop / ms682425.aspx nhưng tôi không có chỗ để đưa nó vào trong bình luận trước. Logic tìm kiếm được liệt kê trong # 1-6 dưới lpCommandLine.
dxiv

1
@dxiv Cảm ơn đã liên kết. Tôi cũng đã chỉnh sửa nó, mặc dù nó dường như không khớp với hành vi được quan sát của tôi ... (thử: set path=theo sau là cmdkhông thể tìm thấy nó, nhưng start cmdhoạt động khi nó vẫn tìm kiếm các đường dẫn bên ngoài var env).
Bob

1
Cảm ơn vì đã nhân đôi. Đây thực sự là trường hợp thực thi trực tiếp cmd không tìm kiếm các thư mục windows / system theo mặc định và tôi đã sai khi trỏ đến các tài liệu CreatProcess. Có vẻ như cmd có logic riêng của nó, theo phần "Trình tự tìm kiếm lệnh" trong technet.microsoft.com/en-us/l Library / trộm có từ ít nhất là NT, và rất có thể là mãi mãi trước đó.
dxiv

7
start D:\Any_Folder\any_program.exe

hoặc, khi đường dẫn hoặc tệp chứa khoảng trắng

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

start any_program.exechỉ hoạt động cho các chương trình, những người được đặt trong %PATH%biến môi trường hoặc đăng ký trong sổ đăng ký trong khóa HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Pathshoặc HKEY_CURRENT_USERtương tự của nó .


5

Bạn có hai lựa chọn:

  1. Thêm chương trình vào %PATH%biến của bạn
  2. Sử dụng dấu ngoặc kép trong phím tắt của bạn

Chi tiết:

Thêm any_program.exevào đường dẫn:

  1. Chuyển đến "Bảng điều khiển" -> "Cài đặt hệ thống nâng cao"
    Thiết lập hệ thống nâng cao
  2. Chuyển đến tab Nâng cao
    Cài đặt hệ thống

  3. Nhấp vào "Biến môi trường" Thêm thư mục chứa any_program.exe. Chỉnh sửa biến PATH và thêm thư mục vào cuối, cách nhau bởi một;
    biến đường dẫn

  4. Bây giờ bạn có thể sử dụng any_program.exe trong hộp thoại chạy (Thử đăng xuất và quay lại để đảm bảo các thay đổi biến đường dẫn của bạn được sử dụng.)

Sử dụng đường dẫn hoàn chỉnh

Thay vì sử dụng any_program.exetrong hộp thoại Run, bạn cần sử dụng PATH hoàn chỉnh. Vì vậy, gõ D:\Stuff\App\any_program.exevào hộp thoại chạy thay thế.


những ảnh chụp màn hình là WAAAY đến lớn. Tâm trí có chúng ở một kích thước hợp lý?
Journeyman Geek

Làm việc trên nó ...
Nemo

Các thư mục đường dẫn trên Windows được phân cách bằng dấu chấm phẩy ( ;), không phải dấu hai chấm ( :) ...
Bob

Tôi đã có nó trong tâm trí của tôi, nhưng vẫn gõ sai nó.
Nemo

Ảnh chụp màn hình được chụp từ c-sharpcorner.com/UploadFile/6cde20/ . Ảnh chụp màn hình ở đó thật khủng khiếp
Journeyman Geek

1
  1. Dấu nhắc mở
  2. Nhập tên của chương trình bạn muốn chạy. Nếu nó nằm trên biến Hệ thống PATH thì nó sẽ được thực thi. Nếu không, bạn sẽ phải nhập đường dẫn đầy đủ đến chương trình. Ví dụ: để chạy D: \ Any_Folder \ any_program.exe, hãy nhập D: \ Any_Folder \ any_program.exe trên dấu nhắc lệnh và nhấnEnter

Haha lừa đẹp!
Ahmadul Hoq

1

Tôi đang sử dụng một phương pháp đơn giản. . .
Sao chép lối tắt của tệp vào C: \ users \ name và sau đó nhập tên của phím tắt trong hộp thoại chạy. . . . .


0

Tôi đoán bạn phải thêm đường dẫn đến biến PATH trong các biến hệ thống


0

Sử dụng CMD để làm điều này thay vì GUI.

  1. Làm cho vị trí tệp thực thi có sẵn trong CMD tức là tạo một PATHbiến:

    Ví dụ:

    • Kịch bản: Bạn muốn mở Acrobat từ CMD
    • THIẾT LẬP: Trong loại CMD

      SET ACROBAT="C:\Program Files (x86)\Adobe\Acrobat 11.0\Acrobat"
      
  2. Thực thi tệp từ CMD:

    Trong loại CMD:

    START ACROBAT
    

Đó là nó !!!
Tôi hy vọng nó sẽ có ích.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.