/? ' Zu diesem Zeitpunkt war ein Fehler in der Batchdatei unerwartet.
Dies liegt daran, dass Sie Klammern benutzt haben (
und )
zum Gruppieren mehrerer Befehle.
Ihr Code enthält Folgendes:
( ... Set _Alphanumeric=ABCDEFGHIJKLMNOPQRSTUVWXYZ ... @()\/?'=-_+ )
Dies bedeutet, dass die falsche )
(die in der set
) der ersten Öffnung entspricht (
, daher der Fehler.
In der Tat brauchen Sie keine Klammern zu verwenden (
und )
mehrere Befehle zu gruppieren, wenn einige andere kleine Änderungen vorgenommen werden, dh, einige Variablen müssen neu initialisiert werden, da Sie eine neue äußere Schleife haben, um mehrere Kennwörter zu generieren.
Feste Batchdatei:
@echo off set executecounter=0 setlocal setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION :loop Set _RNDLength=32 Set _Alphanumeric=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789@()\/?'=-_+ Set _Str=%_Alphanumeric%987654321 SET _RndAlphaNum= set _RND= set _len= :_LenLoop IF NOT "%_Str:~18%"=="" SET _Str=%_Str:~9%& SET /A _Len+=9& GOTO :_LenLoop SET _tmp=%_Str:~9,1% SET /A _Len=_Len+_tmp Set _count=0 SET _RndAlphaNum= :_loop Set /a _count+=1 SET _RND=%Random% Set /A _RND=_RND%%%_Len% SET _RndAlphaNum=!_RndAlphaNum!!_Alphanumeric:~%_RND%,1! If !_count! lss %_RNDLength% goto _loop Echo Random string is !_RndAlphaNum!>> d:\password2.txt set /a executecounter=%executecounter%+1 if "%executecounter%"=="1000" goto done goto loop :done echo Complete! endlocal pause
Lesen Sie weiter
- Ein AZ-Index der Windows-CMD-Befehlszeile - Eine hervorragende Referenz für alles, was mit Windows-Cmd-Zeilen in Verbindung steht.
- Klammern - Verwenden Sie Klammern / Klammern, um Ausdrücke zu gruppieren.