“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?
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.
@ 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.
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" %*
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):
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)
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"
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.
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.
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
Jawaban:
Anda perlu memastikan bahwa exe ada di folder yang ada di
PATH
variabel lingkungan.Anda dapat melakukan ini dengan menginstalnya ke folder yang sudah ada di
PATH
atau dengan menambahkan folder Anda ke folderPATH
.Anda dapat meminta pemasang melakukan hal ini - tetapi Anda harus menghidupkan ulang mesin untuk memastikannya diambil.
sumber
Anda dapat menambahkan kunci registri berikut :
Di kunci ini, tambahkan nilai string default yang berisi path ke file exe.
sumber
start
perintah, sehingga Anda bisa mengetikkanstart myexe
prompt cmd.exe. Tapimyexe
sendirian tidak akan bekerja, saya pikir (kecuali jika Anda berada di direktorimyexe
atau direktori itu ada diPATH
variabel lingkungan).myprog.cmd
file kecil dengan konten berikut:@START myprog.exe %*
Ini memanggilApp Paths
entri untukmyprog.exe
dan melewati semua argumen perintah. File harus dibuat di suatu tempat yang dapat diakses diPATH
PATH
.start myexe
tidak bekerja dengan perubahan registri ini, tanpa menambahkan myexe kePATH
.start myapp
berfungsi, sama halnya dengan Win + Rmyapp
, tetapi tidak biasamyapp
di cmd.exe.Anda harus meletakkan
.exe
path file Anda ke path variabel lingkungan. Buka "Komputer saya -> properti -> lanjutan -> variabel lingkungan -> Path" dan edit path dengan menambahkan.exe
direktori ke path.Solusi lain yang saya pribadi sukai adalah menggunakan RapidEE untuk pengeditan variabel yang lebih lancar.
sumber
Windows 10, 8.1, 8
Buka menu mulai,
Edit environment variables
Edit the system environment variables
Environment variables...
tombolSystem Variables
kotak temukanpath
variabelEdit
New
.exe
ataubatch
file Anda ( Direktori berarti mengecualikan nama file dari jalur)Ok
pada semua jendela yang terbuka danrestart sistem Anda,restart prompt perintah .sumber
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:
sumber
C:\cygwin\bin\grep.exe
start ""
dan mulai saja dengan jalan ke executable. Juga, untuk digunakan dalam cygwin, Anda mungkin menginginkan skrip shell cygwin, atau symlink. Atau alias shell.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.
sumber
Katakanlah exe saya adalah C: \ Program Files \ AzCopy \ azcopy.exe
Command / CMD / Batch
PowerShell
Sekarang saya cukup mengetik dan menggunakan
azcopy
dari lokasi mana saja dari prompt perintah shell inc, powershell, git bash dllsumber
sumber
Anda juga dapat secara permanen (setelah reboot) menambahkan ke variabel Path dengan cara ini:
Klik kanan Komputer Saya -> Klik Properti -> Klik Pengaturan sistem lanjutan -> Klik Variabel Lingkungan
Referensi: Ubah Variabel Sistem / Pengguna
sumber
Masukkan ke dalam direktori c: \ windows atau tambahkan direktori Anda ke "path" di pengaturan-lingkungan (windows-break - tab advanced)
salam, // t
sumber
C:\Windows
, lebih baik menambahkan direktori kustom kePATH
variabel lingkungan.Gunakan file batch 1 baris di instalasi Anda:
jalankan file bat
Sekarang, letakkan .exe Anda di c: \ windows, dan Anda selesai.
Anda dapat mengetikkan 'exename' di command-line dan itu akan menjalankannya.
sumber
C:\Windows
, lebih baik menambahkan direktori kustom kePATH
variabel lingkungan.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
Tambahkan Alias Anda
Buka di Jendela Shell Baru
Untuk memulai
C:\path to\my program.exe
, meneruskan semua argumen, membukanya di jendela baru, buatc:\aliases\my program.bat
file dengan konten berikut (lihat Perintah Mulai NT untuk detail tentang perintah start):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) membuatc:\aliases\my program.bat
file dengan konten berikut: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:
sumber
Tambahkan ke PATH, langkah-langkah di bawah ini (Windows 10):
sumber
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.
sumber
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
sumber
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
sumber
C:\Windows
, lebih baik menambahkan direktori kustom kePATH
variabel lingkungan.