Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Zeilenweises Auslesen einer Txt und Schreiben der einzelnen Zeilen in fortlaufende Variablen

Frage Entwicklung Batch & Shell

Mitglied: Indolenz

Indolenz (Level 1) - Jetzt verbinden

03.03.2010, aktualisiert 18.10.2012, 5006 Aufrufe, 4 Kommentare

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
Mitglied: Biber
03.03.2010 um 11:38 Uhr
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):
>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
Bitte warten ..
Mitglied: Indolenz
03.03.2010 um 13:21 Uhr
Moin Biber,

vielen Dank für die schnelle Antwort.

Mir raucht gerade ein wenig der Kopf und ich glaube die Lösung ist ganz einfach, aber ich komm partout nicht drauf.


Ich möchte ja quasi das "echo %%j" , das in deinem Beispiel "4" sprich "Ou4" ist, gleich weiter deklarieren als Variable über:

for /f "delims=: tokens=1,*" %%i in ('findstr /n . %systemroot%\adresult.txt') do @If "%%i"=="%account%" @set %%j=client

Bekomme jedoch die Fehlermeldung: "Die Umgebungsvariable "Ou4" ist nicht definiert."

Kann ich nicht einfach das "@echo %j " weglassen und gleich weiter "set=" verwenden?

Und die dann gesetzte Variable %client% möchte ich in einem folgenden Befehl dann aufgreifen ...

Vielen Dank
Indolenz
Bitte warten ..
Mitglied: Indolenz
03.03.2010 um 14:07 Uhr
Problem gelöst ...

Übergabe des Echos als Variable mit:

for /f "delims=: tokens=1,*" %%i in ('findstr /n . %systemroot%\adresult.txt') do @If "%%i"=="%account%" (
echo %%j
set "client=%%j"
)

Vielen Dank noch mal ...
Bitte warten ..
Ähnliche Inhalte
PHP
gelöst TXT Datei auslesen und bestimmte Zeilen in Variable setzen (11)

Frage von 126594 zum Thema PHP ...

Batch & Shell
gelöst Batch: Textdatei Zeilenweise auslesen (2)

Frage von CreatorX zum Thema Batch & Shell ...

Batch & Shell
gelöst Per Batch in ausgewählte oder vorgeschriebene Zeile einer .txt schreiben (6)

Frage von pdiddo zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(14)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

RedHat, CentOS, Fedora

Fedora 27 ist verfügbar

Information von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
Server
Bilder aus dem Web mit CSV runterladen (30)

Frage von Yannosch zum Thema Server ...

Server-Hardware
Bestehendes Raid erweitern um 4 gleiche Platten! (Verständnis Fragen) (12)

Frage von Hendrik2586 zum Thema Server-Hardware ...

Windows Update
WSUS 4 (Server 2012 R2) - Windows 10 Updates nicht möglich (12)

Frage von c0d3.r3d zum Thema Windows Update ...