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-Key: 69444

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

Printed on: April 19, 2024 at 09:04 o'clock

Member: bastla
bastla Sep 25, 2007 at 10:14:45 (UTC)
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]
Member: SlainteMhath
SlainteMhath Sep 25, 2007 at 10:40:36 (UTC)
Goto Top
Jau, funktioniert super, danke face-smile