2009-05-07 7 views

Odpowiedz

12

Myślę, że a/v opcja dla findstr, które jest równoznaczne z grep -v (obejmują wszystkie wiersze NIE zawierać tekst Więc będę patrząc na:

dir | findstr /vi ".pdf" 

The składnia może być nieco inny, nie miałem dużo trzeba go używać, a ja don'r uruchomić system Windows w moim bieżącej lokalizacji.

Zastosowanie findstr /? w wierszu polecenia dla szczegółów.

Lub, jeśli instalujesz CygWin (moje narzędzie wyboru dla t jego rodzaju rzeczy), można po prostu użyć grep sam:

ls -al | grep -vi '\.pdf$' 

Uzupełnienie:

I rzeczywiście nie uświadomić sobie tego, ale widocznie findstr obsługują także regexes tak można użyć:

dir | findstr /vi "\.pdf$" 

tak samo jak grep (nie testowałem tego, tylko znalazłem go na TechNet, więc będziesz musiał przetestować to samemu).

+0

+1 Wydaje się, że to robi - dobra robota. –

+0

Dzięki, @Andrew, naprawdę nie chciałem uruchamiać odtwarzacza VMWare, aby go przetestować :-) – paxdiablo

+0

Działa wspaniale. Dzięki! –

3

Można łączyć dir z findstr prawie rób co chcesz:

dir * | findstr /vi .pdf 

Uwaga jednak, że jeśli plik nazywa my.pdf.converted.txt, zostanie nieprawidłowo wyrzucane tutaj.

Jeśli naprawdę chcesz, aby uzyskać fantazyjny, tutaj jest całkowicie poprawna wersja, bardziej odpowiednie dla skryptu wsadowego:

for /f %a in ('dir /b *') do @if "%~xa" neq ".txt" echo %a 

Powodzenia bez względu na to, czego spróbować :) DOS jest „fun”.

+0

Błogosławieństwo, nie mam do czynienia z żadnymi sztuczkami, jak przykład "pdf.converted.txt". Ale dobry połów! –

+0

findstr w XP mówi mi, że radzi sobie z regexem na tyle dobrze, aby dopasować koniec linii w zwykły sposób – Anonymous

0

Wiem, że to działa już dla ciebie, ale możesz to zrobić z większością wersji DOS (przynajmniej tych, które pamiętam) w ten sposób.

Attrib * .bad + H
dir/oE
Attrib * .bad -H

który ma wpłynąć ukrywać te, których nie chcesz wyświetlić, wykonując dir następnie ich odkrywania . To trochę nieprzyjemne, muszę przyznać, ale wydaje się, że to wystarczy.

0

w MS-DOS lub CMD po prostu wpisać do unikania plików PDF:

dir | find/V ".pdf" 

jednak pamiętać liczbę plików w dolnej części wyjściem będzie zawierać plik (i) PDF.

Poza tym możesz również użyć tego polecenia dla innych rozszerzeń, zastępując ".pdf" do ".xxx", gdzie xxx jest dowolnym rozszerzeniem.

0

Oto jeden prosty sposób bez użycia findstr/znaleźć lub orurowanie do innego polecenia:

for %%a in (*) do (
    if not exist %%~Na.pdf echo %%a 
) 

Zasadniczo dla pętla pętla po wszystkich plikach. "Jeśli nie istnieje", zostanie wydrukowany plik * .pdf.

%% ~ Na oznacza użycie nazwy %% zmiennej bez jej rozszerzenia.