Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

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, 2583 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 ..
Ähnliche Inhalte
Weiterbildung
gelöst Unterstützung bei Gehaltsverhandlungen (24)

Frage von 133566 zum Thema Weiterbildung ...

Groupware
gelöst Intranetlösung mit Zimbra-Unterstützung (4)

Frage von 0gCidTbdWg zum Thema Groupware ...

Linux
Archlinux plant die i686 (32Bit) Unterstützung einzustellen

Information von mrtux zum Thema Linux ...

Neue Wissensbeiträge
Humor (lol)

Wo ist der Fehler auf dem Bild?

(15)

Information von the-buccaneer zum Thema Humor (lol) ...

Windows Update

Offenbar erneutes MS-Update mit Fehlerschleife (2012 R2)

Information von VGem-e zum Thema Windows Update ...

Windows Installation

Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen

(14)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Heiß diskutierte Inhalte
Lizenzierung
Programm soll in verschiedenen Versionen lizenziert sein (20)

Frage von Yanmai zum Thema Lizenzierung ...

Windows Installation
Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen (14)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Microsoft Office
Access Hilfe benötigt (13)

Frage von DieAzubinne zum Thema Microsoft Office ...

Windows Userverwaltung
Ordner-Rechte für Dom.Admin einschränken? (13)

Frage von kilobyte zum Thema Windows Userverwaltung ...