Menambahkan .exe ke jalur default tanpa menambahkan direktori

22

Sebagai contoh, saya ingin menambahkan notepad ++ ke PATH saya, namun direktori tersebut juga berisi uninstall.exedan beberapa file / executable lainnya dan saya tidak ingin mereka "mencemari" jalur saya. Bisakah saya menambahkan satu saja notepad++.exe?

Louis Rhys
sumber

Jawaban:

17

Anda dapat menambahkan skrip kumpulan ke direktori yang ada di jalur Anda, yang terlihat seperti ini:

@echo off

:: Notepad++ execution

if [%1]==[-h] goto :HELP
if [%1]==[--help] goto :HELP
if [%1]==[/?] goto :HELP
goto :START

:START
start "" /i "%ProgramFiles(x86)%\notepad++\notepad++.exe" %*
goto :EOF

:HELP
echo -------------------------------
echo Notepad++ Command Argument Help
echo -------------------------------
echo Usage :
echo.
echo notepad++ [--help] [-multiInst] [-noPlugins] [-lLanguage] [-nLineNumber] [-cColumnNumber] [-xPos] [-yPos] [-nosession] [-notabbar] [-ro] [-systemtray] [-loadingTime] [fullFilePathName]
echo.
echo     --help : This help message
echo     -multiInst : Launch another Notepad++ instance
echo     -noPlugins : Launch Notepad++ without loading any plugin
echo     -l : Launch Notepad++ by applying indicated language to the file to open
echo     -n : Launch Notepad++ by scrolling indicated line on the file to open
echo     -c : Launch Notepad++ on scrolling indicated column on the file to open
echo     -x : Launch Notepad++ by indicating its left side position on the screen
echo     -y : Launch Notepad++ by indicating its top position on the screen
echo     -nosession : Launch Notepad++ without any session
echo     -notabbar : Launch Notepad++ without tabbar
echo     -ro : Launch Notepad++ and make the file to open read only
echo     -systemtray : Launch Notepad++ directly in system tray
echo     -loadingTime : Display Notepad++ loading time
echo     -alwaysOnTop : Make Notepad++ always on top
echo     fullFilePathName : file name to open (absolute or relative path name)
echo.
goto :EOF

:EOF

Anda bisa menamainya notepad++.cmd. Bagian bantuan memungkinkan Anda untuk dengan mudah mendapatkan informasi tentang sakelar.

Saya meletakkan semua skrip dan program baris perintah tersebut dalam direktori yang ditambahkan ke %PATH%: C:\Users\Public\Command\ ... dan direktori itu disinkronkan ke semua komputer dan mesin virtual.

paradroid
sumber
8

Buat file batch dengan konten seperti berikut:

@"C:\Program Files\Git\bin\git.exe" %*

Ini harus disimpan sebagai .batfile, seperti git.batdi direktori yang ada di Anda PATH.

@menekan gema perintah ke shell yang memohon. Kutipan ""mencegah ruang putih ditafsirkan sebagai pembatas argumen. %*menempelkan argumen apa pun ke file batch, sebagai executable yang dikutip.

Anda sekarang dapat memanggil executable menggunakan bagian dari nama file batch sebelumnya .bat. Dalam kasus saya git,.

Referensi:

Matt Joiner
sumber
Untuk banyak program yang akan menutup CMD sampai Anda menutupnya. Anda perlu menggunakan startuntuk menghindari itu, seperti yang ditunjukkan dalam jawaban saya.
paradroid
@paradroid: Terima kasih, tapi itu perilaku terminal standar untuk tetap melekat pada orangtua kecuali diminta. Pengguna harus melakukan start gitdaripada melakukannya untuk mereka. Script batch akan bertindak lebih baik jika execd ke dalam proses yang diminta tetapi ini tidak mungkin pada Windows: serverfault.com/questions/315077/… . Saya bisa bertukar kata calltetapi itu akan menjadi sangat bagus dan kebanyakan tidak ada gunanya.
Matt Joiner
3

Seret pintasan ke notepad++.exeke C:\Windows\System32.


Atau, seperti yang disarankan oleh @Synetech inc., Anda dapat menempatkan pintasan di direktori yang terpisah (mis. C:\Shortcuts), Lalu menambahkan direktori itu ke %PATH%:

setx PATH "%PATH%;C:\Shortcuts"

Seperti yang ditunjukkan oleh beberapa komentar, ini hanya berfungsi dari dialog Run. Untuk mendapatkan pintasan untuk memulai dari prompt perintah, Anda perlu menambahkan ekstensi pintasan (.LNK) ke variabel lingkungan PATHEXT Anda.

setx PATHEXT %pathext%;.LNK

Referensi:

Bagaimana saya bisa memulai aplikasi dengan mudah dengan kotak dialog Run?

Mateen Ulhaq
sumber
1
Ini adalah solusi yang disukai (sebagai lawan dari file batch); buat pintasan di direktori (berbeda) di jalur — jangan mencemari direktori Windows! Saya memiliki folder khusus untuk keperluan ini Shortcuts.
Synetech
1
Itu sintaks yang salah untuk setx. Anda tidak menggunakan tanda sama dengan, dan IIRC, Anda harus menyertakan seluruh path dalam tanda kutip, jika saat ini %PATH%memiliki spasi di dalamnya (yang akan terjadi).
paradroid
Dan tidak SETXmenggunakan tilde untuk variabel alih-alih persen untuk menghindari perluasannya? Saya tahu bahwa beberapa alat pengaturan env-var tidak ...
Synetech
2
Ini tidak bekerja Secara default (saya menyeret git.exe), "git - Shortcut", mengganti nama ini menjadi kombinasi "git.exe", "git", "git.cmd" dll tidak memiliki efek. Itu tidak akan mengakui pintasan.
Matt Joiner
3
Ini hanya berfungsi ketika memohon dari Run Asdialog, itu tidak bekerja dari command prompt.
Matt Joiner
1

Cukup buat tautan simbolis menggunakan mklinkdalam folder di Path.

misalnya (dalam prompt perintah Administrator)

mklink "C:\Users\Me\Documents\Paths\np.exe" "C:\Program Files (x86)\Notepad++\notepad++.exe"
Luigi Plinge
sumber
0

Kunci registri App Paths melakukan hal ini: setel path ke notepad ++. Exe ke "\ program files \ ..." dan Anda akan dapat meluncurkannya dari Start-Run, cmd, ... sama seperti semua executable dari direktori di% PATH%.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths

Referensi: /programming/4822400/register-an-exe-so-you-can-run-it-from-any-command-line-in-windows

patraulea
sumber
Ini tidak akan membuatnya dapat dieksekusi dari cmd - hanya dari start-run, atau dalam cmd Anda harus awalan dengan "start" seperti pada "start myapp.exe"
Tahir Hassan
Command Prompt this, setuju, tidak memiliki kemampuan untuk mengenali variabel ini. PowerShell memang mengenalinya. Solusi ini, yang lebih penting, hanya berlaku untuk direktori, dan karenanya, di luar topik.
Todd Partridge
0

Saya tidak suka solusi yang disajikan di sini, jadi saya mencoba sesuatu yang lain.

  1. Pasang ekstensi shell tautan (info lebih lanjut di sini )

  2. Buat folder di suatu tempat untuk menyimpan semua pintasan Anda seperti yang disarankan Marteen dan tambahkan ke %PATH%. Saya membuat C:\Shortcutsdan menggunakan Editor Lingkungan Cepat untuk menambahkannya ke PATH saya.

  3. Klik kanan file yang ingin Anda tambahkan ke jalur Anda (di Explorer) dan klik "Pilih Sumber Tautan"

  4. Klik kanan dalam folder yang baru saja Anda buat dan klik Drop As > Symbolink Link.

  5. Ganti nama tautan simbol jika Anda mau.

Itu dia. Anda seharusnya dapat mengakses program Anda melalui baris perintah sekarang. Jika Anda baru saja menambahkan folder baru ke PATH Anda, Anda harus memulai ulang cmd.exe atau Cmder atau ConEmu atau apa pun yang Anda gunakan. Setelah itu, Anda dapat menambahkan program baru tanpa memulai ulang.

Mpen
sumber