“Daftarkan” sebuah .exe agar Anda dapat menjalankannya dari baris perintah apa pun di Windows

152

Bagaimana Anda bisa membuat file .exe diakses dari lokasi mana pun di jendela perintah Windows? Apakah ada beberapa entri registri yang harus dimasukkan?

HK1
sumber
6
superuser.com
David Heffernan

Jawaban:

97

Anda perlu memastikan bahwa exe ada di folder yang ada di PATHvariabel lingkungan.

Anda dapat melakukan ini dengan menginstalnya ke folder yang sudah ada di PATHatau dengan menambahkan folder Anda ke folder PATH.

Anda dapat meminta pemasang melakukan hal ini - tetapi Anda harus menghidupkan ulang mesin untuk memastikannya diambil.

ChrisF
sumber
Jawaban ini hampir selalu salah. Paling tidak itu tidak lengkap. Secara khusus, pendekatan ini berfungsi dengan baik untuk MENGINSTAL, tetapi tidak baik untuk menghapus instalan. Sebagian besar pencopot akan mencabut seluruh variabel PATH saat mencopot aplikasi yang terkait dengan ini. Karenanya, jika Anda menulis tindakan instal untuk menambahkan dir ke PATH, Anda harus menjadikannya sebagai tindakan instal CUSTOM yang tidak secara otomatis dihapus instalasinya oleh paket generic remove. Kemudian, cocokkan langkah pemasangan kustom dengan langkah uninstall yang hanya menghapus dir Anda dari variabel PATH.
Kim Gentes
21
@ KimGentes yah itu masalah dengan uninstaller. Seorang uninstaller yang baik harus merapikan dengan baik. Itu tidak membuat jawaban salah.
ChrisF
3
Saya setuju .. ini masalah dengan installer. Tetapi karena semua installer melakukan ini pada variabel (mereka tidak menguraikan dan mengekstrak bagian dari entri registri atau ENV VARIABEL), tampaknya lebih bijaksana untuk menjelaskannya. Jika seseorang mengikuti petunjuk dengan tepat, mereka akan selalu mengalami masalah ini, yang artinya, solusinya mungkin harus selalu menyertakan peringatan itu. Tidak ada paket instal yang menangani menginstal dan menghapus bagian entri Registry atau variabel ENV yang saya tahu, meskipun tolong beri tahu saya jika ada beberapa yang tidak saya ketahui.
Kim Gentes
Alih-alih "menginstal" lingkungan gunakan file batch dengan perintah SETX: SETX PATH "C: \ Windows" ----- dan Anda selesai.
Stavm
3
SETX juga berbahaya karena memiliki batas panjang yang jauh lebih rendah daripada variabel PATH itu sendiri, dan akan terpotong bukannya gagal.
Ben Voigt
48

Anda dapat menambahkan kunci registri berikut :

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

Di kunci ini, tambahkan nilai string default yang berisi path ke file exe.

Andreas Rejbrand
sumber
1
@ Sherdim: Saya sangat meragukan itu. Namun, selalu berhasil dengan startperintah, sehingga Anda bisa mengetikkan start myexeprompt cmd.exe. Tapi myexesendirian tidak akan bekerja, saya pikir (kecuali jika Anda berada di direktori myexeatau direktori itu ada di PATHvariabel lingkungan).
Andreas Rejbrand
Saya cukup membuat myprog.cmdfile kecil dengan konten berikut: @START myprog.exe %*Ini memanggil App Pathsentri untuk myprog.exedan melewati semua argumen perintah. File harus dibuat di suatu tempat yang dapat diakses diPATH
Stavr00
1
@sherdim @ andreas-rejbrand Saya dapat mengkonfirmasi bahwa ini tidak berfungsi pada windows 10 jika myexe tidak masuk PATH. start myexetidak bekerja dengan perubahan registri ini, tanpa menambahkan myexe ke PATH.
davenpcj
@davenpcj: Memang. Kunci registri yang saya sebutkan terkait dengan shell Windows, bukan ke command prompt. Jadi start myappberfungsi, sama halnya dengan Win + R myapp, tetapi tidak biasa myappdi cmd.exe.
Andreas Rejbrand
1
Kunci ini berfungsi untuk menjalankan dari Explorer.exe, jika Anda mencoba dari CMD.exe tidak ditemukan.
Prampe
41

Anda harus meletakkan .exepath file Anda ke path variabel lingkungan. Buka "Komputer saya -> properti -> lanjutan -> variabel lingkungan -> Path" dan edit path dengan menambahkan .exedirektori ke path.

Solusi lain yang saya pribadi sukai adalah menggunakan RapidEE untuk pengeditan variabel yang lebih lancar.

darioo
sumber
39

Windows 10, 8.1, 8

Buka menu mulai,

  1. Tipe Edit environment variables
  2. Buka opsi Edit the system environment variables
  3. Klik Environment variables...tombol
  4. Di sana Anda melihat dua kotak, dalam System Variableskotak temukan pathvariabel
  5. Klik Edit
  6. jendela muncul, klik New
  7. Ketik jalur Direktori file .exeatau batchfile Anda ( Direktori berarti mengecualikan nama file dari jalur)
  8. Klik Okpada semua jendela yang terbuka dan restart sistem Anda, restart prompt perintah .
AmiNadimi
sumber
4
Ini satu-satunya jawaban yang membantu saya. Saya akan menambahkan bahwa "memulai ulang sistem" tidak perlu. Cukup restart cmd sudah cukup.
Joffrey Baratheon
Dengan WinKey + R dan ketik SystemPropertiesAdvanced
prampe
29

Daripada menempatkan executable ke dalam direktori di path, Anda harus membuat file batch dalam direktori di path yang meluncurkan program. Dengan cara ini Anda tidak memisahkan file yang dapat dieksekusi dari file pendukungnya, dan Anda tidak menambahkan hal-hal lain di direktori yang sama ke jalur secara tidak sengaja.

File batch tersebut dapat terlihat seperti ini:

@echo off
start "" "C:\Program Files (x86)\Software\software.exe" %*
Ben Voigt
sumber
1
Apakah Anda keberatan menambahkan contoh file batch seperti itu - akan menyenangkan?
petermeissner
Saya merasa ini adalah pilihan terbaik, saya tidak ingin menambahkan terlalu banyak hal ke variabel path. Saya akan mengedit contoh jawaban dari file batch ini.
Dino
1
Masalah yang saya alami dengan ini adalah memulai shell baru. Saya mencoba untuk mendapatkan biner cygwin untuk diluncurkan di shell yang sama, yang berfungsi jika saya mereferensikannya secara langsungC:\cygwin\bin\grep.exe
Johann
4
@ Johann: Ambil start "" dan mulai saja dengan jalan ke executable. Juga, untuk digunakan dalam cygwin, Anda mungkin menginginkan skrip shell cygwin, atau symlink. Atau alias shell.
Ben Voigt
Sempurna, terima kasih! Saya setuju dengan opsi Anda yang lain untuk dalam cygwin, tetapi dalam hal ini saya mencoba menggunakan biner cygwin dari PowerShell.
Johann
5

luar biasa tidak ada solusi sederhana untuk tugas sederhana di windows, saya membuat skrip cmd kecil ini yang dapat Anda gunakan untuk mendefinisikan alias di windows (instruksi ada di header file itu sendiri):

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

ini hampir sama dengan pendekatan yang digunakan oleh alat-alat seperti NPM atau permata ruby ​​untuk mendaftarkan perintah global.

Benja
sumber
5

Katakanlah exe saya adalah C: \ Program Files \ AzCopy \ azcopy.exe

Command / CMD / Batch

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

PowerShell

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

Sekarang saya cukup mengetik dan menggunakan azcopydari lokasi mana saja dari prompt perintah shell inc, powershell, git bash dll

Bevan
sumber
3
  • Jika Anda ingin dapat menjalankannya di dalam file cmd.exe atau batch, Anda perlu menambahkan direktori .exe di dalam% path% variable ( System atau User )
  • Jika Anda ingin dapat menjalankannya di dialog Run (Win + R) atau aplikasi apa pun yang memanggil ShellExecute , menambahkan exe Anda ke kunci jalur aplikasi sudah cukup (Ini lebih sedikit rawan kesalahan saat menginstal / mencopot dan juga tidak berantakan. variabel jalan)
Anders
sumber
2

Masukkan ke dalam direktori c: \ windows atau tambahkan direktori Anda ke "path" di pengaturan-lingkungan (windows-break - tab advanced)

salam, // t

Teson
sumber
Alih-alih menempatkan custom executable ke dalam C:\Windows, lebih baik menambahkan direktori kustom ke PATHvariabel lingkungan.
Roland Illig
Tergantung. Putty.exe saya taruh di / windows.
Teson
1

Gunakan file batch 1 baris di instalasi Anda:

SETX PATH "C:\Windows"

jalankan file bat

Sekarang, letakkan .exe Anda di c: \ windows, dan Anda selesai.

Anda dapat mengetikkan 'exename' di command-line dan itu akan menjalankannya.

Stavm
sumber
2
Alih-alih menempatkan custom executable ke dalam C:\Windows, lebih baik menambahkan direktori kustom ke PATHvariabel lingkungan.
Roland Illig
1

Alias ​​mirip Bash sederhana di Windows

Untuk mendapatkan alias mirip global bash di Windows untuk aplikasi yang tidak ditambahkan ke jalur secara otomatis tanpa menambahkan masing-masing secara manual ke jalur, inilah solusi terbersih yang saya buat dengan melakukan paling sedikit perubahan pada sistem dan memiliki paling banyak perubahan. fleksibilitas untuk penyesuaian nanti:

"Instal" Jalur Alias ​​Anda

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

Tambahkan Alias ​​Anda

Buka di Jendela Shell Baru

Untuk memulai C:\path to\my program.exe, meneruskan semua argumen, membukanya di jendela baru, buat c:\aliases\my program.batfile dengan konten berikut (lihat Perintah Mulai NT untuk detail tentang perintah start):

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

Jalankan di Window Shell Saat Ini

Untuk memulai C:\path to\my program.exe, meneruskan semua argumen, tetapi menjalankannya di jendela yang sama (lebih seperti bagaimana bash beroperasi) membuat c:\aliases\my program.batfile dengan konten berikut:

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

Jalankan di Window Shell Saat Ini 2

Jika Anda tidak memerlukan aplikasi untuk mengubah direktori kerja saat ini sama sekali untuk dapat beroperasi, Anda bisa menambahkan symlink ke executable di dalam folder alias Anda:

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

Tambahkan ke PATH, langkah-langkah di bawah ini (Windows 10):

  1. Ketik bilah pencarian "environment ..." dan pilih Edit variabel lingkungan sistem yang membuka jendela System Properties
  2. Klik tombol Variabel Lingkungan ...
  3. Di tab Variabel Lingkungan, klik dua kali variabel Path di bagian System variable
  4. Tambahkan path ke folder yang berisi .exe ke Path dengan mengklik dua kali pada baris kosong dan tempel path.
  5. Klik ok dan keluar. Buka prompt cmd baru dan tekan perintah dari folder apa pun dan itu akan berfungsi.
Akash Yellappa
sumber
0

Cara lain bisa melalui penambahan .LNK $ PATHEX Anda. Kemudian buat pintasan ke executable Anda (mis .: yourshortcut.lnk) dan masukkan ke direktori mana saja yang terdaftar dalam $ PATH.

PERINGATAN CATATAN: Ketahuilah bahwa file .lnk yang terletak di direktori mana pun yang tercantum dalam $ PATH Anda sekarang juga "PATH'ed". Untuk alasan ini, saya lebih suka metode file batch yang disebutkan sebelumnya untuk metode ini.

Hept0p
sumber
-1

Jika ada yang mencari ini setelah saya di sini adalah cara yang sangat mudah untuk menambahkan Path Anda.

Kirim path ke file seperti yang ditunjukkan gambar, salin dan tempel dari file dan tambahkan path spesifik di akhir dengan tanda koma sebelumnya ke path baru. Mungkin perlu diadaptasi sebelum windows 7, tapi setidaknya itu adalah titik awal yang mudah.

Command Prompt Image untuk Ekspor PATH ke file teks

Kevin
sumber
Bagian penting dari jawaban harus dalam teks, bukan dalam tangkapan layar eksternal.
Roland Illig
-3

Cara terbaik untuk melakukan ini adalah hanya menginstal file .EXE ke folder windows / system32. dengan cara itu Anda dapat menjalankannya dari lokasi mana pun. Ini adalah tempat yang sama di mana ping seperti .exe dapat ditemukan

Matius
sumber
Alih-alih menempatkan custom executable ke dalam C:\Windows, lebih baik menambahkan direktori kustom ke PATHvariabel lingkungan.
Roland Illig