/ / Usuń wszystkie pętle pliku oprócz jednego za pomocą skryptu bat - windows, plik wsadowy, wiersz poleceń, del

Usuń wszystkie pętle pliku oprócz jednego, ze skryptem bat - windows, plik wsadowy, wiersz poleceń, del

Mam pętlę w pliku wsadowym, aby usunąć wszystkie opróczjeden plik w katalogu (Windows 7). Ale zawiesza się, ponieważ wciąż wysyła komendy na ekran, mimo że sądziłem, że go stłumiłem. Oto polecenie, którego używam:

for %i in (*) do if not %i == UPDATE.BAT del /s %i >nul 2>&1

Przetestowałem mój skrypt wsadowy, dziennik pokazuje, że zatrzymuje się w prawoprzy tym poleceniu. Przetestował polecenie w wierszu poleceń, wysyła polecenie "del / s file.ext> nul 2> & 1" do monitu o każdy plik w katalogu, co powoduje zawieszenie się pliku wsadowego.

Co muszę zmienić tutaj?

Odpowiedzi:

2 dla odpowiedzi № 1

Jeśli jest to bezpośrednio otwarte okno cmd, a nie partia,
możesz wyłączyć wyjście bieżącego polecenia z prowadzeniem @ znak.

@for %i in (*) do @if /i not "%i"=="UPDATE.BAT" @del "%i" >nul 2>&1

W trybie przełączania partii poleceń za pomocą @Echo off i dwukrotnie % znaki zmiennej for.

@Echo off
for %%i in (*) do if /i not "%%i"=="%~nx0" del "%%i" >nul 2>&1