Jeśli rozpocznę nową sesję powłoki systemu Windows i napiszę:
env
Widzę wiele ustawionych zmiennych środowiskowych. Chcę debugować działanie programu wiersza polecenia, usuwając wszystkie zmienne środowiskowe z bieżącej sesji powłoki.
Mógłbym przejść jeden po drugim, stosując następujące podejście:
SET FOO=
SET BAR=
SET ... ... ...
Czy istnieje jednak prosty sposób na usunięcie ich wszystkich za jednym razem?
env
? Nigdy wcześniej o tym nie słyszałem i tutaj to nie działa.Odpowiedzi:
Możesz to zapisać w pliku wsadowym:
Zasadniczo przebiega przez każdą zmienną środowiskową, tworzy kopię zapasową pliku wsadowego (
backupenv.bat
), a następnie usuwa każdą zmienną. Aby je przywrócić, możesz uruchomićbackupenv.bat
plik.źródło
Jeśli chcesz tylko wyczyścić wszystkie zmienne środowiskowe dla pliku wsadowego, staje się to jeszcze łatwiejsze.
Ostatni wiersz wyprowadza wszystkie zmienne środowiskowe, które nie powinny być żadnymi, potwierdzając działanie kodu.
Ponieważ
Setlocal
jest używany, wszystkie zmiany środowiska są tracone po zakończeniu partii. Więc jeśli wpiszeszSet
po partii, zobaczysz, że wszystkie zmienne środowiskowe nadal tam są, dlatego nie musisz przechowywać jej w pliku kopii zapasowej.źródło