Piszę skrypt wsadowy, aby sprawdzić, czy istnieje wartość klucza rejestru i mam pewne problemy.
Kiedy bezpośrednio określę klucz do wyszukania, %ERRORLEVEL%
aktualizuje się odpowiednio. Poniższy przykład odzwierciedla wartość 1 zgodnie z oczekiwaniami.
REG QUERY HKLM /v NONEXISTENT_KEY
ECHO %ERRORLEVEL%
Sprawdzam jednak istnienie wiązki kluczy w pliku, więc zapętlam go FOR
. Następujące echo 0 z jakiegoś powodu, którego nie rozumiem.
FOR /F "tokens=1-2 delims=," %%A IN (myFile.txt) DO (
REG QUERY "%%A" /v "%%B"
ECHO %ERRORLEVEL%
Uwaga: strukturę pliku, który zapętlam, pokazano w następującym przykładzie:
HKEY_LOCAL_MACHINE\PATH\TO\KEY,SOME VALUE
windows
batch
windows-registry
Alex Eshoo
źródło
źródło
ECHO !ERRORLEVEL!
?Odpowiedzi:
Następujące
echo
s0
z jakiegoś powodu nie rozumiem.Musisz EnableDelayedExpansion razem i używać
ECHO !ERRORLEVEL!
.Poprawiony plik wsadowy:
Wydajność:
Dalsze czytanie
źródło
EnableDelayedExpansion
? Nie mogę zrozumieć z ss64, możesz to wyjaśnić?