Tidak termasuk file ekstensi tertentu menggunakan perintah DIR pada baris perintah windows

19

jika saya ingin melihat mis file dari ekstensi tertentu hanya menggunakan daftar dir, saya bisa melakukannya dengan menggunakan perintah:

DIR *.txt 

Dan itu menunjukkan semua file dengan .txtekstensi.
Sekarang saya ingin tahu apakah ada perintah dengan yang saya dapat mengecualikan ekstensi tertentu?
Misalnya, saya tidak ingin melihat file dengan ekstensi .exe, bagaimana saya bisa melakukannya?

Johnydep
sumber

Jawaban:

26

DIR tidak akan mengizinkan apa yang Anda coba lakukan. Namun DIR bersama FINDSTR dapat mengatasi ini.

mis. Berikut ini mengabaikan semua file .txt dalam daftar DIR.

dir | findstr /v /i "\.txt$" 
Saya tidak tahu
sumber
1
Anda mungkin ingin menggunakan dir /b | findstr /v /i "\.txt$"karena dirakan menampilkan header dan kemungkinan file dan folder yang salah dihitung pada akhir
phuclv
Kenapa findstrbaru saja find?
Sopalajo de Arrierez
Karena menemukan pencarian untuk teks dan findstr mendukung regex saya menyarankan Findstr. Jika Anda hanya ingin mencari string yang tepat, pencarian akan berfungsi dengan baik juga.
IUnknown
8
dir /B | find /V ".txt"

Ini akan mencantumkan semua file dan menemukan akan menyaring apa pun yang tidak mengandung ".txt". Jauh dari sempurna, tapi mungkin itu cukup :)

Der Hochstapler
sumber
Tidak perlu /B, saya akan mengatakan, tapi saya lebih suka jawaban ini selama saya tidak melihat perlunya 'findstr' (yang sebenarnya diterima).
Sopalajo de Arrierez
3

Itu tergantung dari penerjemah perintah Anda.

Microsoft cmd tidak memiliki fasilitas seperti itu, seperti yang Anda lihat dari jawaban lain di mana seseorang harus memposting-proses output dir. TCC / LE Perangkat Lunak JP melakukannya. Ini disebut rentang pengecualian file dan digunakan seperti ini untuk contoh dalam pertanyaan Anda:

dir /[!*.exe] *

JdeBP
sumber
Terima kasih, tetapi saya pikir alat ini berjalan sebagai program mandiri. Saya membuat aplikasi saya di mana saya menjalankan proses eksternal menggunakan windows shell atau bash di ubuntu, jadi alat ini tidak akan cocok, Jika mereka menyediakan switch baris cmd maka itu akan berguna.
Johnydep
1
Yang disebutkan sebelumnya jelas adalah saklar baris perintah. Baca dokumentasi hyperlink. Tentu saja, di sebagian besar bahasa pemrograman itu cukup konyol untuk pergi menggunakan shell untuk mendapatkan isi direktori , dan Anda berada di StackExchange yang salah untuk menulis aplikasi.
JdeBP
terima kasih atas penjelasannya, itu benar tetapi ini merupakan solusi untuk memindai direktori-direktori yang memerlukan Elevasi dan saya tidak ingin membuat kode saya memicu UAC prompt, ketika saya bisa mendapatkan hasil dari cmd prompt tanpa memerlukan hak istimewa yang lebih tinggi.
Johnydep