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

Frage Entwicklung Batch & Shell

Mitglied: BigWim

BigWim (Level 2) - Jetzt verbinden

02.12.2010, aktualisiert 17:38 Uhr, 2764 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
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
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
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 ...

Netzwerkgrundlagen
Fragen zum Heimnetzwerk
gelöst Frage von bambulkoNetzwerkgrundlagen11 Kommentare

Ich werde demnächst bauen und möchte schon mal anfangen mein Heimnetzwerk zu planen. Ich möchte jeweils eine Doppel-LAN Dose ...

Neue Wissensbeiträge
Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 2 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Sicherheit

Teamviewer Sessions können gekapert werden - Update tw. verfügbar

Information von sabines vor 4 TagenSicherheit6 Kommentare

In bestimmten Konstellationen können Teamviewer Sessions gekapert werden, wahrscheinlich aber ein recht unwahrscheinliches Szenario. Da der Teamviewer gerne für ...

Digitiales Fernsehen

Apple TV: Amazon Prime App ist verfügbar

Information von Frank vor 4 TagenDigitiales Fernsehen4 Kommentare

Die Amazon Prime Video App kann ab sofort auf einem Apple TV ab der 3 Generation installiert werden. Einfach ...

Heiß diskutierte Inhalte
Vmware
Installation Windows 10 VMware
Frage von Ghost108Vmware17 Kommentare

Hallo zusammen, versuche gerade mit Hilfe des vshpere clients eine virtuelle Windows 10 maschine aufzusetzen. 1. virtuelle Maschine erstellt ...

Exchange Server
SBS 2011 E-Mails können gesendet werden, aber nicht von extern empfangen
Frage von andreas1234Exchange Server14 Kommentare

Hallo Community, ich habe das Problem, dass seit knapp zwei Wochen die E-Mails von meinem SBS 2011 einwandfrei gesendet ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Windows Server
Server 2012 über Eingabeaufforderung devmgmt.msc geht nicht
gelöst Frage von achim222Windows Server9 Kommentare

Hallo, ich habe hier einen Server 2012 der im Reparaturmodus startet. Es liegt an einem falschen VirtIO Treiber für ...