Saya ingat bahwa saya menggunakan alat yang disebut where
untuk menemukan lokasi untuk program yang dapat dieksekusi seperti ini di konsol:
C:\Tmp\Where myTool.exe
C:\Program Files\MyApp\myTools.exe
....
Sekarang saya tidak dapat menemukan alat ini. Tidak yakin apakah Windows memiliki alat bawaan untuk melakukan pencarian itu?
where
bekerja untuk saya di Windows 7 EnterpriseJawaban:
Menurut jawaban StackOverflow di Apakah ada yang setara dengan 'yang' pada windows? ,
where.exe
lakukan ini pada Windows 7 dan Windows Server 2003 dan yang lebih baru:Contoh
Keluaran:
sumber
where
adalah alias default untukWhere-Object
, jadi Anda malah perlu menggunakanwhere.exe
, ataugcm
/Get-Command
Get-Command ping
(atau hanyagcm ping
), yang akan memberi Anda path lengkap, bersama dengan beberapa info lainnya.EDIT: Saya seharusnya menambahkan, jika Anda tidak dapat menggunakan perintah WHERE dari command prompt, periksa variabel PATH Anda. (Cukup gunakan perintah "jalur".) Pastikan C: \ Windows \ System32 ada di jalur Anda. Di situlah "where.exe" berada.
DIMANA adalah perintah yang Anda cari! WHERE seperti persilangan antara shell UNIX built-in "yang" dan "temukan" perintah, di mana ia bekerja untuk kedua perintah yang dapat dieksekusi dan file biasa.
Ini juga agak lebih kompleks daripada keduanya, meskipun, secara umum sederhana
akan bekerja.
Ini berbeda dari perintah "temukan" karena tidak mencari melalui seluruh sistem file. Sebaliknya, perilaku default adalah mencari file di dua lokasi:
Jadi, perintah apa pun yang dapat Anda jalankan langsung dari command prompt tanpa menentukan direktori, akan ditemukan oleh perintah WHERE. (Karena perintah seperti itu sudah ada dalam daftar variabel PATH.)
Jika Anda ingin mencari hanya dalam variabel jalur perintah, Anda dapat menggunakan:
Jika, di sisi lain, Anda ingin menemukan semua salinan file di pohon direktori, Anda dapat menggunakan:
Akhirnya, WHERE akan menemukan perintah dan file apa pun dengan ekstensi dari variabel PATHEXT tanpa menyertakan ekstensi. Semua file lain harus ditentukan dengan tepat atau dengan wildcard.
Ambil contoh file "dxdiag.exe" dan "dxdiagn.dll". Perhatikan perintah berikut dan hasilnya:
Berhasil mengembalikan semua versi "dxdiag.exe" karena ".exe" adalah salah satu ekstensi dalam variabel PATHEXT. (Catatan: "WHERE dxdiag" akan berfungsi juga, karena C: \ Windows \ System32 ada dalam variabel PATH.)
di sisi lain, gagal mengembalikan hasil apa pun, karena ".dll" tidak ada dalam PATHEXT.
Dalam hal ini, lihat hasil yang menambahkan wildcard memberi kita:
Berhasil mengembalikan semua versi dxdiagn.dll.
Untuk informasi lebih lanjut, gunakan "DI MANA /?". Semoga ini membantu!
sumber
where where
C:\Windows\System32\where.exe
:)gunakan
dir
:yang
cd \
bagian perubahan Anda ke akar drive, untuk memastikan pencarian dimulai di bagian atas hirarki.sumber
Perhatikan bahwa beberapa hal mungkin sedikit berbeda untuk PowerShell:
sumber
Frustrasi bahwa itu bukan bawaan sebagai perintah sederhana.
Namun, ada beberapa solusi, salah satunya adalah file batch .
Buat file batch (which.bat) sebagai berikut:
Ini terlihat di direktori lokal, akan mengambil parameter nama file dengan atau tanpa ekstensi, dan mengembalikan kecocokan pertama dari direktori saat ini atau di PATH.
Kemudian jalankan itu seperti
which cmd.exe
mencari cmd.exe yang akan dijalankan jika Anda mengetikcmd
.sumber
Di windows Anda dapat menggunakan utilitas gratis Semuanya mesin pencari untuk mencari secara instan file apa pun dengan nama lengkap atau sebagian (jika hard disk Anda diformat dalam ntfs).
sumber
Jika Anda hanya menginginkan yang mana , proyek GnuWin32 memiliki banyak utilitas unix dengan masing-masing installer.
sumber
Di PowerShell
Anda dapat dengan mudah mengonversikan ini menjadi Cmdlet.
Cara lain untuk mencapai ini, seperti yang disarankan dalam edit:
sumber
Jika Anda hanya perlu jalur untuk meluncurkannya, sering kali lebih baik menggunakan perintah mulai. Misalnya, Anda dapat menggunakan "start chrome.exe" untuk memulai Chrom {e | ium}, di mana pun ia diinstal.
sumber
Heh, saya hanya perlu memposting file batch satu liner Windows ini:
Sebuah tes:
Tidak cukup satu-liner jika Anda memasukkan kode
setlocal enableextensions
danendlocal
, yang diperlukan untuk pengguna yang tidak memiliki ekstensi diaktifkan secara default.sumber