W MS-DOS, jeśli wprowadzę dir *.pdf
, otrzymam wszystkie pliki PDF w katalogu. Czy istnieje sposób na uzyskanie wszystkich plików w formacie , ale? Coś takiego jak dir !*.pdf
?DOS: pozycja katalogu wykluczająca typ pliku?
Dzięki! .
W MS-DOS, jeśli wprowadzę dir *.pdf
, otrzymam wszystkie pliki PDF w katalogu. Czy istnieje sposób na uzyskanie wszystkich plików w formacie , ale? Coś takiego jak dir !*.pdf
?DOS: pozycja katalogu wykluczająca typ pliku?
Dzięki! .
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).
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”.
Błogosławieństwo, nie mam do czynienia z żadnymi sztuczkami, jak przykład "pdf.converted.txt". Ale dobry połów! –
findstr w XP mówi mi, że radzi sobie z regexem na tyle dobrze, aby dopasować koniec linii w zwykły sposób – Anonymous
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.
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.
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.
+1 Wydaje się, że to robi - dobra robota. –
Dzięki, @Andrew, naprawdę nie chciałem uruchamiać odtwarzacza VMWare, aby go przetestować :-) – paxdiablo
Działa wspaniale. Dzięki! –