In MS-DOS, se inserisco dir *.pdf
, otterrò tutti i file PDF in una directory. C'è un modo per ottenere tutto ma i file PDF? Qualcosa come dir !*.pdf
?DOS: elenco di directory che esclude un tipo di file?
Grazie! .
In MS-DOS, se inserisco dir *.pdf
, otterrò tutti i file PDF in una directory. C'è un modo per ottenere tutto ma i file PDF? Qualcosa come dir !*.pdf
?DOS: elenco di directory che esclude un tipo di file?
Grazie! .
Penso che ci sia un'opzione/v per il findstr che è equivalente a grep -v (includere tutte le righe che non facciamo contenere il testo in modo sarei guardando:
dir | findstr /vi ".pdf"
Il sintassi può essere leggermente diversa, non ho avuto molto bisogno di usarlo e ho don'r eseguire Windows in mia posizione attuale.
usa findstr /? al prompt dei comandi per i dettagli.
O, se si installa CygWin (il mio strumento di scelta per t il suo genere di cose), si può semplicemente utilizzare grep stesso:
ls -al | grep -vi '\.pdf$'
Addendum:
ho effettivamente fatto non si rendono conto questo, ma a quanto pare anche FINDSTR supportano espressioni regolari in modo da poter utilizzare:
dir | findstr /vi "\.pdf$"
proprio come grep (non l'ho provato, l'ho appena trovato su TechNet, quindi è necessario testarlo da soli).
È possibile combinare dir con findstr a quasi fare quello che vuoi:
dir * | findstr /vi .pdf
nota, però, che se un file è denominato my.pdf.converted.txt, sarà gettato in modo errato via qui.
se si vuole veramente ottenere fantasia, ecco una versione completamente corretta, più appropriato per uno script batch:
for /f %a in ('dir /b *') do @if "%~xa" neq ".txt" echo %a
Buona fortuna non importa che cosa si prova :) DOS è "divertimento".
Benedettamente, non ho a che fare con trucchi come il tuo esempio "pdf.converted.txt". Buona cattura, però! –
findstr in XP mi dice che può gestire regex abbastanza bene da far corrispondere la fine della linea nel solito modo, anche – Anonymous
So che sta già funzionando per voi ma potreste farlo con la maggior parte delle versioni di DOS (almeno quelle che ricordo) come questo.
Attrib * .bad + H
dir/oE
Attrib * .bad -H
che ha l'effetto di nascondere quelli che non si desidera visualizzare, fare il dir poi unhiding . È un po 'brutto devo ammettere, ma sembra fare il trucco.
In MS-DOS o CMD basta digitare per evitare file pdf:
dir | find/V ".pdf"
Ma ricordate il numero di file in fondo l'uscita includerà il file pdf (s).
Inoltre, è possibile utilizzare questo comando anche per altre estensioni sostituendo ".pdf" a ".xxx", dove xxx è un'estensione qualsiasi.
Ecco un modo semplice senza utilizzare findstr/trovare o tubazioni per un altro comando:
for %%a in (*) do (
if not exist %%~Na.pdf echo %%a
)
Fondamentalmente il ciclo for ciclo volontà attraverso tutti i file. Il "se non esiste" assicurerà che non venga stampato alcun file * .pdf
Il %% ~ Na indica il nome file di %% una variabile senza estensione.
+1 Che sembra farlo - bel lavoro. –
Grazie, @Andrew, non volevo davvero avviare VMWare Player solo per testarlo :-) – paxdiablo
Funziona alla grande. Grazie! –