Top-Themen

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 Eine Frage an die Batch-Großmeister

Mitglied: BigWim

BigWim (Level 2) - Jetzt verbinden

02.12.2010, aktualisiert 17:38 Uhr, 2772 Aufrufe, 3 Kommentare

Moin moin,

ich habe eher eine technische Frage zu einer For-Schleife, die mehr macht als ich möchte - aber ich komm nicht darauf, warum sie es tut. Wenn jemand mal etwas Zeit übrig hat, vielleicht hat jemand eine Erklärung für mich.

Die Batch soll (später mal) einen Abgleich von AD-Gruppen machen. Wir haben immer eine domänenlokale Gruppe und eine domänenglobale Gruppe, die sich durch Namenskonventionen unterscheiden. Äh, besser ein Beispiel.

entscheidene Zeile 23

01.
@echo off & Setlocal 
02.
 
03.
Set Logfile=%~n0.log 
04.
Set OU_DG_Gruppen=ou=Benutzergruppen,ou=Gruppen,ou=Institut,dc=... 
05.
Set OU_DL_Gruppen=ou=Ressourcen,ou=Gruppen,ou=Institut,dc=... 
06.
Set File_DLGruppe=X001GDF 
07.
Set File_DGGruppe=X001GGF 
08.
 
09.
echo Suche DL in DG 
10.
echo - Filezugriffe 
11.
for /f %%t in ('type %file_dlgruppe%.log ^| find /i "%file_dlgruppe%"') do ( 
12.
	echo 'type %file_dlgruppe%.log ^| find /i "%file_dlgruppe%"'  >>%Logfile% 
13.
	echo Variable T ist %%t >>%Logfile% 
14.
	echo on 
15.
	call :FindeGruppe %%t 
16.
17.
 
18.
goto :ProtokollEnde 
19.
 
20.
:FindeGruppe 
21.
for /f "tokens=1 delims=," %%t in (%1) do ( 
22.
	Set tmp=%%t 
23.
	Set dlGruppe=%tmp:~11% 
24.
25.
echo zu %DLGruppe% Gegenstueck suchen .... 
26.
Set DGGruppe= 
27.
for /f %%t in ('type %file_dggruppe%.log ^| find /i "%File_DGGruppe%-%DLGruppe%"') do Set DGGruppe=%%t 
28.
 
29.
if not defined DGGruppe ( 
30.
	echo %file_dlgruppe%-%DLGruppe% ist allein 
31.
) else ( 
32.
  echo Ist %file_dlgruppe%-%DLGruppe% auch verheiratet? 
33.
34.
 
35.
goto :eof 
36.
 


Ausgabe mit echo
Suche DL in DG
- Filezugriffe

for /F "tokens=1 delims=," %t in ("CN=X001GDF-350Hauptfa_A,OU=App1-Server,OU=Ressourcen,OU=Gruppen,OU=Institut,DC=...") do (
Set tmp=%t
Set dlGruppe=\U0010896\LOKALE~1\Temp
)

(
Set tmp=CN=X001GDF-350Hauptfa_A
Set dlGruppe=\U0010896\LOKALE~1\Temp
)

echo zu \U0010896\LOKALE~1\Temp Gegenstueck suchen ....
zu \U0010896\LOKALE~1\Temp Gegenstueck suchen ....

Set DGGruppe=

for /F %t in ('type X001GGF.log | find /i "X001GGF-\U0010896\LOKALE~1\Temp"') do Set DGGruppe=%t

echo off
X001GDF-\U0010896\LOKALE~1\Temp ist allein
Ende Ausgabe mit echo


Beim ersten Durchlauf wird mein Temp-Verzeichnis (zusätzlich) untersucht und ich weiß gar, wie meine For-Schleife auf diese Idee kommt.

Unterm Strich möchte ich nichts anderes machen, als eine Textdatei mit einer anderen Textdatei zu vergleichen - und das mittels der For-Schleife. For-Schleife deshalb, weil ich sonst nicht weiß, wie ich die Zeile zerlegen kann. Zu dieser GDF-Gruppe muß es auch eine GGF-Gruppe geben.

Schritt 1 - Zeile aus Datei 1 lesen
Schritt 2 - aus "CN=X001GDF-350Hauptfa_A,OU" den wichtigen Teil "350Hauptfa_A" extrahieren
Schritt 3 - entsprechend Namenskonzept muß es eine Gruppe namens "X001GGF-350Hauptfa_A" geben.

Grundsätzlich läuft es ja auch schon, aber diese erste Zeile im Logfile ....
Danke für jeden hilfreichen Tipp.

Markus


zu lesende Datei sieht so aus:
[Datei1]
Stand vom 02.12.2010 um 15:28:31,86


"CN=X001GDF-350Hauptfa_A,OU=App1-Server,OU=Ressourcen,OU=Gruppen,OU=Institut,DC=..."
[/Datei1]

[Datei2]
Stand vom 02.12.2010 um 15:28:20,11


"CN=X001GGF-350Hauptfa_A,OU=Dateisystemzugriff,OU=Benutzergruppen,OU=Gruppen,OU=Institut,DC=..."
"CN=X001GGF-350Lagler_A,OU=Dateisystemzugriff,OU=Benutzergruppen,OU=Gruppen,OU=Institut,DC=..."
"CN=X001GGF-ABIT_L,OU=Dateisystemzugriff,OU=Benutzergruppen,OU=Gruppen,OU=Institut,DC=..."
"CN=X001GGF-AbitWEB_A,OU=Dateisystemzugriff,OU=Benutzergruppen,OU=Gruppen,OU=Institut,DC=..."
[/Datei2]
Mitglied: bastla
02.12.2010 um 17:54 Uhr
Hallo BigWim!
Eine Frage an die Batch-Großmeister
Falls ich auch dürfte ...

Da Du keine "delayedExpansion" einsetzt, wird zwar ein (neuer) Wert für die Variable "tmp" gesetzt, allerdings interessiert sich der Batch noch nicht dafür, da die Variable %tmp% bereits zu Beginn der Schleife ausgewertet wird - und diese Variable (ein simples "set t" genügt zur Demonstration) enthält defaultmäßig den selben Pfad wie %temp% (und sollte daher auch nicht verändert werden).
Du brauchst übrigens keine "tmp"-Variable zu erfinden - die Zerlegung kannst Du ja auch so vornehmen:
for /f "tokens=2 delims=-," %%t in (%1) do Set "dlGruppe=%%t"
Grüße
bastla
Bitte warten ..
Mitglied: BigWim
02.12.2010 um 18:02 Uhr
Hallo Bastla,

Falls ich auch dürfte ...
Wenn bisher nicht, dann sicher ab jetzt!

Wieder einmal herzlichen Dank! Das habe ich sogar verstanden.

Dann funktioniert das Ganze ja eher zufällig bzw dürfte ich ja dann im letzten Durchlauf den Wurm drinne haben ....

Was habe gewerkelt, um die Zerlegung geschickt hinzubekommen, und dann so ein Tipp - ein echter Großmeister

Wieder einmal muß ich jetzt Feierabend machen, aber morgen früh werde ich das sofort einbauen. Hoffentlich kann ich heute ruhig schlafen!

Vielen Dank noch einmal & schönen Abend
Markus
Bitte warten ..
Mitglied: bastla
02.12.2010 um 18:07 Uhr
Hallo BigWim!

Danke für die Ernennung
Wieder einmal muß ich jetzt Feierabend machen
... ich fühle mit Dir

Grüße (oder: Gute Nacht)
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Erneute Frage: Powershell in Batch mit Html

gelöst Frage von michi-ffmBatch & Shell6 Kommentare

Hey Freunde, dies ist meine letzte Frage hier. Ich habe eine Aufgabe erhalten, jedoch kann ich Sie nicht lösen, ...

Batch & Shell

Kleine Frage zu Batch - Uhrzeit-Variable

gelöst Frage von narthanBatch & Shell18 Kommentare

Hallo Administratoren, ich bastel gerade an einem relativ aufwendigen Skript (für meine Batch-Kenntnisse sehr umfangreich) und habe ein kleines ...

Batch & Shell

Kl. Frage: Log-File schreiben per Batch

gelöst Frage von YauhunBatch & Shell3 Kommentare

Hey ihr Genies. =)) Ich habe ein kleines Problem beim Schreiben eines Logs: ( Unterschied nur in der ersten ...

Windows 10

Frage zur Cortona

Frage von avitasWindows 101 Kommentar

Lassen sich damit auch Texte in Word diktieren oder geht das nicht, falls ja, was muss ich da einstellen ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 1 TagWindows 105 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 1 TagAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 2 TagenHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 2 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Hyper-V
Hyper-V mit altem XEON-Server. Was ist falsch?
Frage von LollipopHyper-V11 Kommentare

Hallo Bin etwas frustriert. Kleinbetrieb, ca. 15 PC's, 2 Stk. Server mit einigen virtuellen PC's für Fernwartung, VaultServer für ...

Windows Server
NTFS Berechtigungen Ordnerstruktur
Frage von hukahu23489Windows Server11 Kommentare

Hallo, ich bin seit kurzem in einer neuen IT-Abteilung und bin über das Berechtigungskonzept des Unternehmens sehr schockiert. Ich ...