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?

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$" 

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 :)


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] *


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.