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

Bitte um Unterstützung bei folgendem for

Frage Entwicklung Batch & Shell

Mitglied: jschneider

jschneider (Level 1) - Jetzt verbinden

17.07.2008, aktualisiert 18.07.2008, 2559 Aufrufe, 2 Kommentare

Hallo,

ich stehe irgendwie auf dem Schlauch


ich habe eine Quelldatei auf Basis derer Inhalte ich Verzeichnisse und die dazugehörigen Gruppen im AD anlegen möchte und darüber hinaus diese Verzeichnise gleich auf die angelegte Gruppe berechtigen möchte. Soweit erstmal zum Hintergrund


meine Quelldatei hat z.B. folgende Inhalte

01.
\RootVerzeichnis1 
02.
\RootVerzeichnis1\Unterverzeichnis1 
03.
\RootVerzeichnis1\Unterverzeichnis2 
04.
 
05.
\RootVerzeichnis2 
06.
\RootVerzeichnis2\Unterverzeichnis1 
07.
\RootVerzeichnis2\Unterverzeichnis2\nocheinunterverzeichnis1 
08.
\RootVerzeichnis2\Unterverzeichnis3\nocheinunterverzeichnis2 
09.
\RootVerzeichnis2\Unterverzeichnis4\ 
10.
\RootVerzeichnis2\Unterverzeichnis5\nocheinunterverzeichnis1\nocheinunterverzeichnis3
usw.

mehr als 4 Ebenen wird es nicht geben

ich möchte jetzt also jede Zeile auseinandernehmen und die Werte zwischen den "\" verarbeiten ABER ich weiss halt nicht wieviele es je Zeile sind (von 1 -4 Werte) Das muss aber abgefangen werden. das ist eigentlich mein größtest Problem

Das Verzeichnis anlegen würde schon gehen, in dem ich den ganzen String so einlese, aber ich möchte auch die Gruppen anlegen die dann so heissen sollen:


Grp_Org_RootVerzeichnis1
Grp_Org_RootVerzeichnis1_Unterverzeichnis1
Grp_Org_RootVerzeichnis2_Unterverzeichnis5_nocheinunterverzeichnis1_nocheinunterverzeichnis3


was ich bsiher habe (allerdings früheste Alpha)


01.
 
02.
@echo off & setlocal 
03.
chcp 1252 
04.
 
05.
Set Source=C:\scripting\20-scripts\Quelldatei.txt 
06.
Set LW=R: 
07.
 
08.
 
09.
if not Exist %LW% net use %LW% \\Server1\Share1 
10.
 
11.
 
12.
 
13.
for /f "tokens=1,* delims=\" %%i in ('findstr "\" "%Source%"') do ( 
14.
   echo Hier erfolgt ein Wunder 
15.
   call :VerzeichnisAnlegen %%i "%%K" 
16.
   call :GruppeAnlegen 
17.
   call :BerechtigungSetzen 
18.
19.
goto :eof 
20.
 
21.
:VerzeichnisAnlegen 
22.
set "Verzeichnis=%1" 
23.
md %LW%\ 
24.
 
25.
goto :eof 
26.
 
27.
:GruppeAnlegen 
28.
Set "vGrp=%1" 
29.
Set grpPrefix=Grp_Org_ 
30.
net group %grpPfefix%%vGRP% /domain >NUL 
31.
goto :eof 
32.
 
33.
:BerechtigungSetzen 
34.
setacl Werte und Parameter hier (nicht das Poblem) 
35.
goto :eof 
36.
 
37.
 
Mitglied: Biber
17.07.2008 um 17:56 Uhr
Moin jschneider,

ich weiss nich'...
Mag sein, dass ich zu einfach gestrickt bin für den harten Admin-Alltag, aber ich würde es mir nicht so schwer machen.

Wenn ich Deine Beispielsätze bei mir in eine Datei js.txt packe, dann kann ich es jeweils so trennen (Beispiel am CMD-Prompt, mein Prompt sieht so: ">" aus):
01.
(=17:52:27  D:\temp=) 
02.
>For /f "delims=\ tokens=1-2" %a in (js.txt) do @if "%b"=="" @echo Roots: %a goto Roots 
03.
Roots: RootVerzeichnis1 goto Roots 
04.
Roots: RootVerzeichnis2 goto Roots 
05.
 
06.
(=17:53:45  D:\temp=) 
07.
>For /f "delims=\ tokens=1-3" %a in (js.txt) do @if "%c"=="" if "%b" NEQ "" @echo goto :EinSubdir %a\%b 
08.
goto :EinSubdir RootVerzeichnis1\Unterverzeichnis1 
09.
goto :EinSubdir RootVerzeichnis1\Unterverzeichnis2 
10.
goto :EinSubdir RootVerzeichnis2\Unterverzeichnis1 
11.
goto :EinSubdir RootVerzeichnis2\Unterverzeichnis4 
12.
 
13.
(=17:54:33  D:\temp=) 
14.
>For /f "delims=\ tokens=1-4" %a in (js.txt) do @if "%d"=="" if "%c" NEQ "" @echo goto :2Subdir %a\%b\%c 
15.
goto :2Subdir RootVerzeichnis2\Unterverzeichnis2\nocheinunterverzeichnis1 
16.
goto :2Subdir RootVerzeichnis2\Unterverzeichnis3\nocheinunterverzeichnis2
Genauso kannst Du es doch auch im Batch handeln, oder übersehe ich etwas?

Grüße
Biber
Bitte warten ..
Mitglied: jschneider
18.07.2008 um 11:35 Uhr
Hallo Biber,

mag auch sein, dass ich immer zu kompliziert denke und alles (ausser Brotschneiden) viel einfacher geht als ich denke.

ich habe gestern noch mal einen anderen Ansatz ausprobiert

und zwar zähle ich einfach die dinger nicht, sondern nutze sie wie sie sind

den String
01.
\\RootVerzeichnis2\\Unterverzeichnis2\\nocheinunterverzeichnis1 
nehme ich einfach wie er ist und nutze ihn einmal (in einer Funktion) als Pfad .. da muss ich ja nicht mehr viel mit anstellen

und einmal per
01.
set vGrp=!vGRP:\\=_!
ersetze ich die "\" einfach durch ein "_" *brustschwell*


damit habe ich alles was ich will
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Hardware
Banana Pi M2 Ultra: Bastelrechner bietet native SATA-Unterstützung

Link von runasservice zum Thema Hardware ...

Linux Desktop
Linux Desktop: Gnome 3.22 erweitert Flatpak-Unterstützung

Link von Frank zum Thema Linux Desktop ...

Server-Hardware
gelöst Unterstützung bei Serverauswahl für Büro 5 Arbeitsplätze (17)

Frage von FachfremderNutzer zum Thema Server-Hardware ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...