Usuwanie elementów za pomocą wiersza polecenia jest dość łatwe.
del /options filename.extension
Załóżmy teraz, że chcę usunąć wszystkie pliki, które nie kończą się na .jpg w folderze, jak mam to zrobić.
Chodzi o to, że mam oprogramowanie, które konwertuje wszystkie określone obrazy do formatu .jpg, ale pozostawia oryginały, których już nie potrzebuję.
O wiele bardziej wydajne byłoby wykonanie pojedynczej instrukcji w porównaniu do wykonywania wielu instrukcji dla każdego rodzaju pliku.
windows
command-line
KdgDev
źródło
źródło
/s
do każdej linii, aby rekurencyjnie dołączyć pliki do podkatalogów.To właściwie całkiem proste.
Musisz
for
iterować pliki, a następnie po prostu szukać rozszerzenia:powinien zrobić lewę (kod tutaj ).
źródło
Powershell na ratunek
W czasach systemu Windows 7/8 jest to następca starej dobrej linii poleceń
Del
jest pseudonimem dlaRemove-Item
. Ma kilka opcji, takich jak rekurencja, włączanie, wykluczanie i filtrowanie (użyj tego dla RegEx)Musisz dodać,
\*
aby dołączyć pliki do danego folderuźródło
PowerShell.exe -Command "&{Remove-Item C:\MyFolder\* -Exclude '*.jpg'}"
Wiem, że to nie odpowiada bezpośrednio na twoje pytanie, ale czy sprawdziłeś opcje konwertera, aby sprawdzić, czy:
lub
źródło
Szukałem sposobu, aby znaleźć wszystkie pliki, które NIE miały rozszerzenia „.mp3” w katalogu TREE na Windows 7 (wolumin NTFS) zawierającym może 20 000 plików w kilkuset katalogach o różnych głębokościach ... więc po odrobinie angst, użyłem:
wyświetlało to pliki, które nie pasowały do .mp3 po usunięciu wszystkiego, co jest związane z wyjściem polecenia DIR ... 99% działa ... chyba że plik, który nie pasuje, jest nazwany jednym ze słów kluczowych w standardowym wyjściu DIR - być może istnieje sposób na to, aby raport DIR zawierał mniej informacji o nagłówkach / podsumowaniach - ale nie zawracałem sobie głowy tym, ponieważ dostało się to w większości przypadków.
źródło
/b
flagadir
polecenia.dir /b
wyświetli nazwy plików i rozszerzenia tylko w bieżącym katalogu,dir /s /b
wyświetli w pełni kwalifikowane nazwy wszystkich plików w bieżącym i wszystkich podkatalogach. Pipowanie dofind /v
zamiastfor
pętli jest miłym akcentem, który muszę pamiętać, ale nie sądzę, żeby to działałodel
.Inny sposób usuwania wszystkich plików pasujących do nazwy pliku pokazano poniżej. Lista pętli for zawiera wszystkie pliki, a jeśli NIE jest zgodne z nazwą pliku (bez nazwy katalogu).
źródło