Potrzebuję polecenia systemu Windows, aby usunąć katalog i wszystkie zawierające go pliki, ale nie chcę wyświetlać żadnych błędów, jeśli katalog nie istnieje.
Odpowiedzi:
Przekieruj dane wyjściowe delpolecenia do wartości nul. Zwróć uwagę 2, aby wskazać, że wyjście błędu powinno zostać przekierowane. Zobacz także to pytanie , a zwłaszcza dokument techniczny Korzystanie z operatorów przekierowania poleceń .
del {whateveroptions} 2>nul
Lub możesz sprawdzić istnienie pliku przed wywołaniem del:
if exist c:\folder\file del c:\folder\file
Zauważ, że możesz użyć if exist c:\folder\(z końcem \), aby sprawdzić, czy c:\folderrzeczywiście jest to folder, a nie plik.
rmdir /s /q some\where\myFolder 2>nul
rmdir= rd), którą dbenham udzielił już dokładnie 6 lat temu
Przekieruj stderr do nul
rd /q /s "c:\yourFolder" 2>nul
Lub sprawdź, czy folder istnieje przed usunięciem. Zwróć uwagę, że zakończenie \jest krytyczne w warunku IF.
if exist "c:\yourFolder\" rd /q /s "c:\yourFolder"
U mnie w systemie Windows 10 działa świetnie:
if exist <path> rmdir <path> /q /s
qoznacza „usuń bez pytania” i soznacza „usuń wszystkie podfoldery i pliki w nim”.
Możesz także połączyć polecenie:
(if exist <path> rmdir <path> /q /s) && <some other command that executes after deleting>
W powyższym monicie pojawia się T lub N. Więc zamiast tego użyłem następującego i działa idealnie.
if exist cddd rmdir cddd
Mam nadzieję, że to komuś pomoże.
Twoje zdrowie.