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, 4911 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 Bestimmte Daten aus CSV per Windows BATCH Datei in .txt Format schreiben lassen. (9)

Frage von freshman2017 zum Thema Batch & Shell ...

Batch & Shell
gelöst Zeilen in TXT mit Leerzeichen auf eine bestimmte Länge auffüllen (4)

Frage von stingray14k zum Thema Batch & Shell ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(5)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
Windows Server
gelöst Exchange HyperV Prozessorlast (19)

Frage von theoberlin zum Thema Windows Server ...

Windows Server
Server mit Netzwerkaussetzern (18)

Frage von SarekHL zum Thema Windows Server ...

Server-Hardware
gelöst SPP von HP Abwärtskompatibel? (14)

Frage von fireskyer zum Thema Server-Hardware ...

Netzwerke
Vorschlag Hotelverkabelung (14)

Frage von FA-jka zum Thema Netzwerke ...