slaintemhath
Goto Top

Zeile aus Datei einlesen und in zwei Variablen speichern.

ich brauch mal eben jemand, der mich in die richtige Richtung schubst face-smile

Ich habe eine Datei mit folgendem Aufbau:
\\pfad\irgendwo\hin\ohne_space   CN=vor nachname,OU=blah,OU=blubb,dc=domain,dc=local
\\pfad\irgendwo\hin\mit space    CN=mit Leerzeichen,OU=Muster,OU=blah,OU=blubb,dc=domain,dc=local
\\pfad\irgendwo\hin\3            CN=ohne_leerzeichen,OU=Muster,OU=blah,OU=blubb,dc=domain,dc=local

Ziel ist jeweils den Pfad in eine, und den Rest der Zeile in eine andere Variable zu speichen.

Mein bisheriger Ansatz war u.A. der folgende:

for /F "delims=*" %%l in (home2.txt) do Call :SplitLine "%%l"  

:SplitLine
	for /F "tokens=1" %%h in (%1) do SET userhome=%%h  
	for /F "tokens=2,* delims=CN=" %%s in (%1) do SET dn=CN=%%s  
	echo home="%userhome%"  
	echo DN="%dn%"  
GOTO :EOF

Leider funktioniert das nicht so ganz, und ich hab im moment keine Ahnung wo der Fehler liegt.

Content-ID: 69444

Url: https://administrator.de/contentid/69444

Ausgedruckt am: 21.11.2024 um 12:11 Uhr

bastla
bastla 25.09.2007 um 12:14:45 Uhr
Goto Top
Hallo SlainteMhath!

Versuch es so:
@echo off & setlocal
for /F "delims=*" %%l in (home2.txt) do Call :SplitLine "%%l"  
GOTO :EOF

:SplitLine
for /F "tokens=1* delims=CN=" %%h in (%1) do SET "userhome=%%h" & SET "dn=CN=%%i"  

:DelTrailingBlanks
if not defined userhome goto :Done
if "%userhome:~-1,1%" neq " " goto :Done  
set "userhome=%userhome:~0,-1%"  
goto :DelTrailingBlanks

:Done
echo home="%userhome%"  
echo DN="%dn%"  
GOTO :EOF

Grüße
bastla

[Edit] Zeile "if not defined userhome goto :Done" zur Absicherung gegen leeres %userhome% hinzugefügt. [/Edit]
SlainteMhath
SlainteMhath 25.09.2007 um 12:40:36 Uhr
Goto Top
Jau, funktioniert super, danke face-smile