Escludendo i file di una determinata estensione utilizzando il comando DIR sulla riga di comando di Windows


19

se voglio vedere, ad esempio, i file di una determinata estensione usando solo la directory dir, posso farlo usando il comando:

DIR *.txt 

E mostra tutti i file con .txtestensione.
Ora voglio sapere c'è qualche comando con cui posso escludere determinate estensioni?
Ad esempio, non voglio vedere alcun file con estensione .exe, come posso farlo?

Risposte:


26

DIR non permetterà ciò che stai cercando di fare. Tuttavia DIR e FINDSTR possono risolvere questo problema.

es. Quanto segue ignora tutti i file .txt nell'elenco DIR.

dir | findstr /v /i "\.txt$" 

1
potresti voler usare dir /b | findstr /v /i "\.txt$"perché dirprodurrà l'intestazione e alla fine
verranno

Perché findstroltre find?
Sopalajo de Arrierez,

Perché trovare ricerche di testo e findstr supporta regex, ho suggerito Findstr. Se vuoi solo cercare una stringa esatta, la ricerca funzionerebbe bene.
IUnnown

8
dir /B | find /V ".txt"

Questo elenca tutti i file e trova filtra tutto ciò che non contiene ".txt". È tutt'altro che perfetto, ma forse è abbastanza :)


Non ne /Bho bisogno , direi, ma preferisco questa risposta fintanto che non vedo la necessità di "findstr" (quello effettivamente accettato).
Sopalajo de Arrierez,

3

Dipende dal tuo interprete di comandi.

Microsoft cmdnon ha una tale funzione, come puoi vedere dalle altre risposte in cui si deve post-elaborare l'output di dir. Lo fa TCC / LE di JP Software . Si chiama intervallo di esclusione dei file e viene utilizzato in questo modo per l'esempio nella domanda:

dir /[!*.exe] *


Grazie, ma penso che questo strumento funzioni come programma autonomo. Sto realizzando la mia applicazione in cui eseguo un processo esterno utilizzando Windows Shell o Bash in Ubuntu, quindi questo strumento non si adatta, se forniscono interruttori di linea cmd, sarà utile.
Johnydep,

1
Ciò che precede è chiaramente un interruttore da riga di comando. Leggi la documentazione con collegamento ipertestuale. Naturalmente, nella maggior parte dei linguaggi di programmazione, è abbastanza stupido andare fino in fondo usando la shell per ottenere i contenuti della directory e ci si trova su StackExchange sbagliato per scrivere applicazioni.
JdeBP,

grazie per la spiegazione, è vero, ma è una soluzione alternativa per la scansione di quelle directory che richiedono Elevation e non voglio fare in modo che il mio codice attivi il prompt UAC, quando posso ottenere risultati dal prompt cmd senza richiedere privilegi più elevati.
Johnydep,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.