Đăng ký Đăng nhập một .exe để bạn có thể chạy nó từ bất kỳ dòng lệnh nào trong Windows


152

Làm thế nào bạn có thể tạo một tệp .exe có thể truy cập từ bất kỳ vị trí nào trong cửa sổ lệnh Windows? Có một số mục đăng ký phải được nhập?


Câu trả lời:


97

Bạn cần chắc chắn rằng exe nằm trong một thư mục nằm trên PATHbiến môi trường.

Bạn có thể làm điều này bằng cách cài đặt nó vào một thư mục đã có trên PATHhoặc bằng cách thêm thư mục của bạn vào PATH.

Bạn có thể yêu cầu trình cài đặt của mình thực hiện việc này - nhưng bạn sẽ cần khởi động lại máy để đảm bảo nó được chọn.


Câu trả lời này hầu như luôn luôn là sai. Ít nhất là nó không đầy đủ. Cụ thể, phương pháp này hoạt động tốt khi CÀI ĐẶT, nhưng không tốt cho việc gỡ cài đặt. Hầu hết các trình gỡ cài đặt sẽ WHIPE ra toàn bộ biến PATH khi gỡ cài đặt ứng dụng được liên kết với điều này. Do đó, nếu bạn viết một hành động cài đặt để thêm thư mục vào PATH, bạn nên biến nó thành hành động cài đặt TÙY CHỈ không tự động gỡ cài đặt bởi gói gỡ bỏ chung. Sau đó, khớp bước cài đặt Tùy chỉnh đó với bước gỡ cài đặt chỉ xóa thư mục của bạn khỏi biến PATH.
Kim Gentes

21
@KimGentes cũng là một vấn đề với trình gỡ cài đặt. Một trình gỡ cài đặt tốt nên dọn dẹp độc đáo. Nó không làm cho câu trả lời sai.
ChrisF

3
Tôi đồng ý .. đó là một vấn đề với trình cài đặt. Nhưng vì tất cả các trình cài đặt làm điều này với các biến (chúng không phân tích và trích xuất các phần của mục đăng ký hoặc VARIABLES ENV), nên có vẻ thận trọng để giải thích nó. Nếu một người làm theo chỉ dẫn một cách chính xác, họ sẽ luôn gặp phải vấn đề này, điều đó có nghĩa là, giải pháp có lẽ phải luôn luôn bao gồm sự cảnh báo đó. Không có gói cài đặt nào đảm nhiệm việc cài đặt và gỡ cài đặt các phần của mục đăng ký hoặc biến ENV mà tôi biết, mặc dù vui lòng cho tôi biết nếu có một số phần tôi không biết.
Kim Gentes

Thay vì "cài đặt" môi trường, hãy sử dụng một tệp bó với lệnh SETX: SETX PATH "C: \ Windows" ----- và bạn đã hoàn tất.
Stavm

3
SETX cũng nguy hiểm vì nó có giới hạn độ dài thấp hơn nhiều so với chính biến PATH và sẽ cắt ngắn thay vì thất bại.
Ben Voigt

48

Bạn có thể thêm khoá đăng ký sau :

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\myexe.exe

Trong khóa này, thêm giá trị chuỗi mặc định chứa đường dẫn đến tệp exe.


1
@sherdim: Tôi rất nghi ngờ điều đó. Tuy nhiên, nó luôn hoạt động với startlệnh, vì vậy bạn có thể nhập start myexedấu nhắc cmd.exe. Nhưng myexemột mình không nên làm việc, tôi nghĩ (trừ khi bạn đang ở trong thư mục của myexehoặc thư mục đó nằm trong PATHbiến môi trường).
Andreas Rejbrand

Tôi chỉ đơn giản là tạo một myprog.cmdtệp nhỏ với nội dung sau: @START myprog.exe %*Điều này gọi App Pathsmục nhập myprog.exevà truyền tất cả các đối số lệnh. Tập tin nên được tạo ở đâu đó có thể truy cập trongPATH
Stavr00

1
@sherdim @ andreas-rejbrand Tôi có thể xác nhận điều này không hoạt động trên windows 10 nếu myexe không hoạt động PATH. start myexekhông hoạt động với thay đổi đăng ký này, mà không cần thêm myexe vào PATH.
davenpcj

@davenpcj: Thật vậy. Khóa sổ đăng ký tôi đã đề cập có liên quan đến Windows shell, không liên quan đến dấu nhắc lệnh. Vì vậy, start myapphoạt động, cũng như Win + R myapp, nhưng không phải là đơn giản myapptrong cmd.exe.
Andreas Rejbrand

1
Khóa này hoạt động để chạy từ Explorer.exe, nếu bạn thử từ CMD.exe thì không tìm thấy.
prampe

41

Bạn phải đặt .exeđường dẫn tệp của bạn vào đường dẫn biến môi trường. Chuyển đến "Máy tính của tôi -> thuộc tính -> nâng cao -> biến môi trường -> Đường dẫn" và chỉnh sửa đường dẫn bằng cách thêm .exethư mục của đường dẫn vào đường dẫn.

Một giải pháp khác mà cá nhân tôi thích là sử dụng RapidEE để chỉnh sửa biến mượt mà hơn.


38

Windows 10, 8.1, 8

Mở menu bắt đầu,

  1. Kiểu Edit environment variables
  2. Mở tùy chọn Edit the system environment variables
  3. Nhấn vào Environment variables...nút
  4. Ở đó bạn thấy hai hộp, trong System Variableshộp tìm pathbiến
  5. Nhấp chuột Edit
  6. một cửa sổ bật lên, nhấp vào New
  7. Nhập đường dẫn Thư mục của tệp .exehoặc batchtệp của bạn ( Thư mục có nghĩa là loại trừ tên tệp khỏi đường dẫn)
  8. Nhấp Okvào tất cả các cửa sổ đang mở và khởi động lại hệ thống của bạn khởi động lại dấu nhắc lệnh .

3
Đây là câu trả lời duy nhất giúp tôi. Tôi sẽ thêm rằng "khởi động lại hệ thống" là không cần thiết. Đơn giản chỉ cần khởi động lại cmd là đủ.
Joffrey Baratheon

Với WinKey + R và gõ SystemProperIESAvised
prampe

29

Thay vì đặt tệp thực thi vào một thư mục trên đường dẫn, bạn nên tạo một tệp bó trong một thư mục trên đường dẫn khởi chạy chương trình. Bằng cách này, bạn không tách rời tệp thực thi khỏi các tệp hỗ trợ của nó và bạn không thêm các nội dung khác trong cùng thư mục vào đường dẫn ngoài ý muốn.

Tập tin lô như vậy có thể trông như thế này:

@echo off
start "" "C:\Program Files (x86)\Software\software.exe" %*

1
Bạn có phiền khi thêm một ví dụ về một tệp bó như vậy - sẽ rất tuyệt không?
petermeissner

Tôi cảm thấy như đây là tùy chọn tốt nhất, tôi không muốn thêm quá nhiều thứ vào biến đường dẫn. Tôi sẽ chỉnh sửa thành ví dụ trả lời của tệp bó như vậy.
Dino

1
Vấn đề tôi gặp phải là nó bắt đầu một lớp vỏ mới. Tôi đang cố gắng để có được một nhị phân cygwin để khởi chạy trong cùng một vỏ, điều này sẽ xảy ra nếu tôi tham chiếu trực tiếp nhưC:\cygwin\bin\grep.exe
Johann

4
@Johann: Đưa ra start "" và chỉ bắt đầu với đường dẫn đến tệp thực thi. Ngoài ra, để sử dụng trong cygwin, bạn có thể muốn một tập lệnh shell cygwin hoặc symlink. Hoặc một bí danh vỏ.
Ben Voigt

Hoàn hảo, cảm ơn bạn! Tôi đồng ý với các tùy chọn khác của bạn trong cygwin, nhưng trong trường hợp này tôi đang cố gắng sử dụng nhị phân cygwin từ powershell.
Johann

5

Thật đáng ngạc nhiên khi không có giải pháp đơn giản nào cho một tác vụ đơn giản như vậy trên windows, tôi đã tạo tập lệnh cmd nhỏ này mà bạn có thể sử dụng để xác định bí danh trên windows (hướng dẫn nằm ở chính tiêu đề tệp):

https://gist.github.com/benjamine/5992592

đây là cách tiếp cận tương tự được sử dụng bởi các công cụ như NPM hoặc đá quý ruby ​​để đăng ký các lệnh toàn cầu.


5

Giả sử exe của tôi là C: \ Program Files \ AzCopy \ azcopy.exe

Lệnh / CMD / hàng loạt

SET "PATH=C:\Program Files\AzCopy;%PATH%"

PowerShell

$env:path = $env:path + ";C:\Program Files\AzCopy"

Bây giờ tôi có thể chỉ cần gõ và sử dụng azcopytừ bất kỳ vị trí nào từ bất kỳ dấu nhắc lệnh shell inc, powershell, git bash, v.v.


3
  • Nếu bạn muốn có thể chạy nó trong cmd.exe hoặc các tệp bó, bạn cần thêm thư mục .exe nằm trong biến% path% ( Hệ thống hoặc Người dùng )
  • Nếu bạn muốn có thể chạy nó trong hộp thoại Run (Win + R) hoặc bất kỳ ứng dụng nào gọi ShellExecute , thêm exe của bạn vào khóa đường dẫn ứng dụng là đủ (Điều này ít xảy ra lỗi trong quá trình cài đặt / gỡ cài đặt và cũng không bị lộn xộn lên biến đường dẫn)


2

Đặt nó trong thư mục c: \ windows hoặc thêm thư mục của bạn vào "đường dẫn" trong cài đặt môi trường (windows-break - tab advanced)

liên quan, // t


Thay vì đặt các tệp thực thi tùy chỉnh vào C:\Windows, người ta nên thêm một thư mục tùy chỉnh vào PATHbiến môi trường.
Roland Illig

Nó phụ thuộc. Putty.exe tôi đặt trong / windows.
Teson

1

Sử dụng tệp bó 1 dòng trong cài đặt của bạn:

SETX PATH "C:\Windows"

chạy tập tin bat

Bây giờ đặt .exe của bạn vào c: \ windows và bạn đã hoàn thành.

bạn có thể nhập 'exename' trong dòng lệnh và nó sẽ chạy nó.


2
Thay vì đặt các tệp thực thi tùy chỉnh vào C:\Windows, người ta nên thêm một thư mục tùy chỉnh vào PATHbiến môi trường.
Roland Illig

1

Các bí danh giống Bash đơn giản trong Windows

Để có được các bí danh giống như bash toàn cầu trong Windows cho các ứng dụng không được thêm vào đường dẫn một cách tự động mà không cần thêm thủ công vào đường dẫn, đây là giải pháp sạch nhất mà tôi đã đưa ra với số lượng thay đổi ít nhất cho hệ thống và có nhiều thay đổi nhất đối với hệ thống linh hoạt cho các tùy chỉnh sau này:

"Cài đặt" Đường dẫn bí danh của bạn

mkdir c:\aliases
setx PATH "c:\aliases;%PATH%"

Thêm bí danh của bạn

Mở trong cửa sổ vỏ mới

Để bắt đầu C:\path to\my program.exe, chuyển qua tất cả các đối số, mở nó trong một cửa sổ mới, tạo c:\aliases\my program.battệp có nội dung sau (xem Lệnh bắt đầu NT để biết chi tiết về lệnh bắt đầu):

@echo off
start "myprogram" /D "C:\path to\" /W "myprogram.exe" %*

Thực thi trong cửa sổ Shell hiện tại

Để bắt đầu C:\path to\my program.exe, chuyển qua tất cả các đối số, nhưng chạy nó trong cùng một cửa sổ (giống như cách bash hoạt động) tạo c:\aliases\my program.battệp có nội dung sau:

@echo off
pushd "C:\path to\"
"my program.exe" %*
popd

Thực thi trong Cửa sổ Shell hiện tại 2

Nếu bạn không cần ứng dụng thay đổi thư mục làm việc hiện tại để hoạt động, bạn chỉ cần thêm một liên kết tượng trưng để thực thi trong thư mục bí danh của mình:

cd c:\aliases\
mklink "my program.exe" "c:\path to\my program.exe"

0

Thêm vào PATH, các bước bên dưới (Windows 10):

  1. Nhập vào thanh tìm kiếm "môi trường ..." và chọn Chỉnh sửa các biến môi trường hệ thống mở ra cửa sổ Thuộc tính hệ thống
  2. Nhấp vào nút Biến môi trường ...
  3. Trong tab Biến môi trường, bấm đúp vào biến Đường dẫn trong phần Biến hệ thống
  4. Thêm đường dẫn vào thư mục chứa .exe vào Đường dẫn bằng cách nhấp đúp vào dòng trống và dán đường dẫn.
  5. Nhấn ok và thoát. Mở một dấu nhắc cmd mới và nhấn lệnh từ bất kỳ thư mục nào và nó sẽ hoạt động.

0

Một cách khác có thể là thông qua việc thêm .LNKvào $ PATHEX của bạn. Sau đó, chỉ cần tạo một lối tắt đến tệp thực thi của bạn (ví dụ: yourshortcut.lnk) và đặt nó vào bất kỳ thư mục nào được liệt kê trong $ PATH.

LƯU Ý CẢNH BÁO: Biết rằng bất kỳ tệp .lnk nào nằm trong bất kỳ thư mục nào được liệt kê trong $ PATH của bạn cũng đều là "PATH'ed". Vì lý do này, tôi sẽ ưu tiên phương thức tệp bó được đề cập trước đó cho phương thức này.


-1

Nếu ai đó đang tìm kiếm điều này sau tôi đây là một cách thực sự dễ dàng để thêm Đường dẫn của bạn.

Gửi đường dẫn đến một tệp như hình ảnh hiển thị, sao chép và dán nó từ tệp và thêm đường dẫn cụ thể ở cuối bằng dấu chấm phẩy trước vào đường dẫn mới. Có thể cần phải điều chỉnh trước windows 7, nhưng ít nhất nó là một điểm khởi đầu dễ dàng.

Lệnh Prompt Image để xuất PATH sang tệp văn bản


Phần thiết yếu của câu trả lời phải ở trong văn bản, không phải trong ảnh chụp màn hình bên ngoài.
Roland Illig

-3

Cách tốt nhất để làm điều này chỉ là cài đặt tệp .EXE vào thư mục windows / system32. bằng cách đó bạn có thể chạy nó từ bất kỳ vị trí nào. Đây là cùng một nơi có thể tìm thấy ping giống như .exe


Thay vì đặt các tệp thực thi tùy chỉnh vào C:\Windows, người ta nên thêm một thư mục tùy chỉnh vào PATHbiến môi trường.
Roland Illig
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.