Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 4878 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 ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
gelöst Einzelne Zeilen in txt Datei speichern und auslesen (7)

Frage von noah1400 zum Thema Batch & Shell ...

Windows Server
gelöst AD-User einer AD-Gruppe auslesen und in ein File schreiben (15)

Frage von Estefania zum Thema Windows Server ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (22)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...