Zeilenweises Auslesen einer Txt und Schreiben der einzelnen Zeilen in fortlaufende Variablen
Hallo ans Forum,
ich habe eine Frage zum zeilenweisen Auslesen einer Txt, die ich dann in der gleichen Batch-Datei, aus der der Befehl aufgerufen wird, wieder deklarieren will
- leider bekomme ich nur die letzte Zeile ausgegeben und ohne fortlaufende Nummerierung.
Ausgangspunkt:
Ich lese mit folgendem Befehl in der AD vorhandene OUs aus und schreibe sie in eine Datei
dsquery ou OU=111,OU=222,DC=333,DC=444,DC=com -o rdn -scope onelevel > ouresult.txt
Inhalt ouresult.txt=
"Ou1"
"Ou2"
"Ou3"
"Ou4"
...
"OuX"
Diese Txt versuche ich mit folgendem Batch-Befehl auszulesen:
for /f "usebackq delims=" %%i in ("Pfad:\ouresult.txt") do (for /L %%N IN (1 1 %%N) DO echo set %%N+1=)%%i > Ausgabe
Als Ergebnis bekommen ich aber nur die letzte Zeile der Ergebnis.txt:
set +=1 "OuX")
Nach Suche hier im Forum bin ich auf folgenden Befehl gestoßen, den ich aber nicht angepaßt bekomme:
for /f "usebackq delims=" %%i in (' findstr /n $ "Pfad:\ouresult.txt" ') do @(for /L %%a in (1,1,x) do @if %%i==%%a @echo %%j)
Mein angestrebtes Ergebnis sollte so aussehen, daß ich in der gleichen Batch-Datei, die über die Batch ausgelesenen
und in die ouresult.txt geschrieben Werte wieder einlese und als deklarierte Variablen verwenden kann:
Set 1="ou1"
Set 2="Ou2"
Set 3="Ou3"
...
Set X="OuX"
Bitte geben Sie die entsprechende Ziffer fuer die Ou ein:
Set /p account=
netdom join %computername% /Domain:123.com\adc.123.com /OU:OU=Workstations,OU=%account%,OU=111,OU=222,DC=333,DC=444,DC=com
Ich hoffe, ich konnte verständlich machen, was ich meine
Vielen Dank im Voraus für Eure Hilfe und Mühe
Gruß
Indolenz
ich habe eine Frage zum zeilenweisen Auslesen einer Txt, die ich dann in der gleichen Batch-Datei, aus der der Befehl aufgerufen wird, wieder deklarieren will
- leider bekomme ich nur die letzte Zeile ausgegeben und ohne fortlaufende Nummerierung.
Ausgangspunkt:
Ich lese mit folgendem Befehl in der AD vorhandene OUs aus und schreibe sie in eine Datei
dsquery ou OU=111,OU=222,DC=333,DC=444,DC=com -o rdn -scope onelevel > ouresult.txt
Inhalt ouresult.txt=
"Ou1"
"Ou2"
"Ou3"
"Ou4"
...
"OuX"
Diese Txt versuche ich mit folgendem Batch-Befehl auszulesen:
for /f "usebackq delims=" %%i in ("Pfad:\ouresult.txt") do (for /L %%N IN (1 1 %%N) DO echo set %%N+1=)%%i > Ausgabe
Als Ergebnis bekommen ich aber nur die letzte Zeile der Ergebnis.txt:
set +=1 "OuX")
Nach Suche hier im Forum bin ich auf folgenden Befehl gestoßen, den ich aber nicht angepaßt bekomme:
for /f "usebackq delims=" %%i in (' findstr /n $ "Pfad:\ouresult.txt" ') do @(for /L %%a in (1,1,x) do @if %%i==%%a @echo %%j)
Mein angestrebtes Ergebnis sollte so aussehen, daß ich in der gleichen Batch-Datei, die über die Batch ausgelesenen
und in die ouresult.txt geschrieben Werte wieder einlese und als deklarierte Variablen verwenden kann:
Set 1="ou1"
Set 2="Ou2"
Set 3="Ou3"
...
Set X="OuX"
Bitte geben Sie die entsprechende Ziffer fuer die Ou ein:
Set /p account=
netdom join %computername% /Domain:123.com\adc.123.com /OU:OU=Workstations,OU=%account%,OU=111,OU=222,DC=333,DC=444,DC=com
Ich hoffe, ich konnte verständlich machen, was ich meine
Vielen Dank im Voraus für Eure Hilfe und Mühe
Gruß
Indolenz
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 137277
Url: https://administrator.de/forum/zeilenweises-auslesen-einer-txt-und-schreiben-der-einzelnen-zeilen-in-fortlaufende-variablen-137277.html
Ausgedruckt am: 22.04.2025 um 02:04 Uhr
4 Kommentare
Neuester Kommentar
Moin indolenz,
ohne deiner Frage ausweichen zu wollen - ich würde die Strategie geringfügig ändern.
Mit dem FindStr-/n-befehl oben hast du doch schon eine "durchnummerierte Liste aller OUs".
Brauchst du doch nicht nochmal clonen.
Beispiel am CMD-Prompt ("das führnde ">" gehört zu meinem Prompt, nicht mit eingeben):
Da, wo jetzt in der Demo steht If "%i"=="4" wäre es entsprechend If "%i"=="%account%" im "richtigen" Ablauf.
Anm.:Im Batch jeweils %%i und %%j statt %i und %j am Cmd-Prompt.
Grüße
Biber
ohne deiner Frage ausweichen zu wollen - ich würde die Strategie geringfügig ändern.
Mit dem FindStr-/n-befehl oben hast du doch schon eine "durchnummerierte Liste aller OUs".
Brauchst du doch nicht nochmal clonen.
Beispiel am CMD-Prompt ("das führnde ">" gehört zu meinem Prompt, nicht mit eingeben):
>findstr /n . e:\schnipsel\OuResults.txt
1:"Ou1"
2:"Ou2"
3:"Ou3"
4:"Ou4"
5:...
6:"OuX"
>REM nachdem u z.B. als %account% die "4" abgefragt hast:
>for /f "delims=: tokens=1,*" %i in ('findstr /n . e:\schnipsel\OuResults.txt') do @If "%i"=="4" @echo %j
"Ou4"
Da, wo jetzt in der Demo steht If "%i"=="4" wäre es entsprechend If "%i"=="%account%" im "richtigen" Ablauf.
Anm.:Im Batch jeweils %%i und %%j statt %i und %j am Cmd-Prompt.
Grüße
Biber
schau dir mal diesen Thread genau an:
Wie kann man mehere Werte aus einer Textdatei in verschiedene Variablen speichern?
Wie kann man mehere Werte aus einer Textdatei in verschiedene Variablen speichern?