Czy istnieje polecenie MS-DOS, które pozwala mi usunąć wszystkie pliki oprócz jednego?
Jako przykład rozważ następujące pliki:
a.001
a.002
a.003
a.exe
a.c
Czy istnieje polecenie usunięcia wszystkich plików oprócz a.c
?
Aby to zrobić, możesz użyć poleceń for
i if
:
for %i in (*) do if not "%~i" == a.c del "%~i"
Przechodzi przez bieżący katalog i porównuje każdą nazwę pliku z ac. Jeśli nie pasuje, plik jest usuwany.
for
regularnie używać, wymyślisz dla niego wszelkiego rodzaju szalone scenariusze. :)del "%i"
IF
instrukcja nie uwzględniała wielkości liter, zmień ją naIF /I
.Możesz ustawić plik do odczytu tylko przed usunięciem wszystkiego
źródło
Nie, nie ma. Zrobiłbym katalog, skopiowałem do niego ważny plik, skasowałem . i przenieś plik z powrotem. Następnie usuń plik tymczasowy.
źródło
źródło
%f
może mieć spacje w nazwie pliku.źródło
%app_path%
i%file%
są katalogiem głównym drzewa, które należy przechodzić, oraz plikiem, aby odpowiednio uniknąć usuwania. Co to jest^
i dlaczego przekazujemy cztery tokeny na plik doDel
polecenia?Dla prędkości używam delen :
TCC / LE ma również silniejsze
del
polecenie:źródło
del /[!a.c] *
yeldsInvalid switch - "[!a.c]".