Saya punya direktori di folder rumah saya di mana saya menempatkan perangkat lunak command-line (CMD_Software). Saya menempatkan masing-masing perangkat lunak di direktori sendiri di dalam CMD_Software untuk menghindari kekacauan.
Saya ingin membuat satu entri dalam variabel PATH saya yang akan memungkinkan akses ke CMD_Software dan semua direktori yang dikandungnya dari baris perintah.
Saya mencoba C:\Users\myuser\CMD_Software\*
tetapi itu tidak berhasil. Itulah titik di mana saya kehabisan ide.
Harap dicatat bahwa saya tidak mencoba untuk menetapkan jalur baru saat berada di terminal, saya mencoba untuk mengatur jalur baru di "Variabel Lingkungan" yang tersedia di tab "Tingkat Lanjut" dari System Properties.
windows
windows-8
command-line
environment-variables
Landon Brainard
sumber
sumber
Jawaban:
Variabel PATH tidak mendukung wildcard atau rekursi. Ini dengan desain.
Ada dua kemungkinan penyelesaian yang saya gunakan pada kesempatan:
Buat direktori dengan file batch sederhana dan tambahkan direktori itu ke PATH. Setiap file batch dapat meluncurkan program yang Anda inginkan, misalnya:
Baris pertama adalah komentar, yang kedua dimulai dengan
@
untuk menghindari menampilkan perintah yang sedang dijalankan, dan%*
digunakan untuk meneruskan argumen baris perintah apa pun ke EXE.Tambahkan alias ke CMD.EXE:
Ini pada dasarnya diterjemahkan
CMD_Software
dalam command prompt untuk semua setelah tanda sama dengan. The$*
diganti dengan argumen yang disediakan.Saya lebih suka pendekatan kedua, karena Anda dapat mengelompokkan semua alias dalam satu file (lihat saklar "/ MACROFILE" di DOSKEY /?) Dan minta autorun setiap kali penerjemah perintah mulai menggunakan pengaturan registri (lihat kunci "AutoRun" di CMD /?).
Kelemahan dari metode kedua adalah alias hanya berfungsi pada awal baris perintah. Ini bisa menjadi masalah jika Anda ingin rantai perintah. Misalnya,
CLS & CMD_Software
tidak akan berfungsi kecuali jika Anda menempatkan alias di baris terpisah menggunakan tanda kurung:Setiap kali ini menjadi masalah, saya hanya mundur ke pendekatan file batch.
sumber
Inilah yang saya gunakan untuk memperbaiki masalah. Salin skrip ini di bawah dan simpan sebagai
FIXPATH.BAT
ke folder yang telah Anda tambahkan kePATH
variabel lingkungan. Contohnya:Sekarang setiap kali Anda perlu menjalankan program yang ada di dalam subfolder, katakan ...
Jalankan
fixpath
dahulu lalu masukkan perintah (misalnyagrep
atauexiftool
) seperti:FIXPATH.BAT
Terima kasih atas jawaban @ VonC
sumber
Letakkan subdirektori "programlinks \" di bawah ... \ CMD_Software (atau di mana saja, sebenarnya) dan isi dengan tautan simbolik atau hardlink ke setiap executable yang ingin Anda akses. Maka satu entri di PATH untuk ... \ programlinks sudah cukup.
sumber
Jika Anda tidak terlalu kecewa dengan ide tersebut, Anda dapat menyalin alat baris perintah Anda ke direktori Windows \ System32. Kemudian Anda dapat menjalankannya dari direktori mana saja, seperti ping atau ipconfig.
sunting
Setelah sedikit bermain-main, ini IS mungkin. Anda hanya perlu menggunakan titik koma untuk membatasi direktori Anda. Katakanlah Anda memiliki program di "folder1" dan "folder2". Anda akan menulis jalur Anda seperti ini:
Kemudian Anda dapat memanggil program di direktori mana pun langsung dari baris perintah. AFAIK tidak ada cara lain untuk melakukan ini hanya dengan satu baris.
Info pendukung: http://en.wikipedia.org/wiki/PATH_(variable)
sumber
program.bat
sebagai%PATH%\program.bat
lebih atau kurang kebalikan dari apa PATH dirancang untuk.