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
GELÖST

Ordner per Batch erstellen aus Textdatei und Berechtigungen

Frage Entwicklung Batch & Shell

Mitglied: Xaero1982

Xaero1982 (Level 3) - Jetzt verbinden

17.03.2011 um 11:25 Uhr, 9730 Aufrufe, 10 Kommentare

Hallo Zusammen,

ich möchte mehrere Ordner erstellen.

Die Ordnernamen stehen untereinander in einer Textdatei.

Diese soll ausgelesen werden und entsprechende Ordner erstellen.

Anschließend sollen dem jeweiligen Ordner entsprechende Berechtigungen verpasst werden.

Sicherheitsgruppen mit entsprechenden Mitgliedern sind im AD vorhanden.

Also Berechtigungen für Admin + Sicherheitsgruppe x

Jemand eine Idee? Bei ... hab ich nix gefunden

VG & Thx im Voraus!
Mitglied: bastla
17.03.2011 um 11:30 Uhr
Hallo Xaero1982!

Aufgrund Deiner ausführlichen Informationen mal für Windows 2000 (ungetestet):
01.
@echo off & setlocal 
02.
set "Liste=D:\Ordnerliste.txt" 
03.
 
04.
for /f "usebackq delims=" %%i in ("%Liste%") do ( 
05.
    md "%%i" 2>nul 
06.
    echo j|cacls "%%i" /G Administratoren:F GruppeX:C 
07.
)
Grüße
bastla
Bitte warten ..
Mitglied: Xaero1982
17.03.2011 um 17:02 Uhr
Hi Bastla,

Funktioniert wie gewünscht ... vielen Dank

Erklär mir doch aber mal bitte wofür das :

  • "usebackq delims"
  • 2>nul
  • Echo j |

steht?!

Wills ja auch verstehen ...

VG & Thx
PS: War das Ironie mit den ausführlichen Informationen?!
Bitte warten ..
Mitglied: bastla
17.03.2011 um 17:09 Uhr
Hallo Xaero1982!

"usebackq" erlaubt die Verwendung von Dateinamen in Anführungszeichen (würden ansonsten als zu zerlegender Text interpretiert)

"delims=" gibt das oder die Trennzeichen zum Zerlegen der jeweiligen Zeile an - wenn, so wie hier, nach dem "=" nix steht, wird auch nicht zerlegt, sondern die Zeile "am Stück" in die Laufvariable übernommen (wichtig, wenn zB der Ordnername Leerzeichen enthielte, da diese als Default-Trennzeichen gelten)

"2>nul" unterdrückt die Ausgabe von Fehlermeldungen (hier für den Fall, dass der Ordner bereits existierte)

"echo j|" gibt die Antwort auf die Frage, ob Du denn tatsächlich sicher wärst, dass die Berechtigungen neu gesetzt werden sollen, gleich vorweg

Grüße
bastla

P.S.:
PS: War das Ironie mit den ausführlichen Informationen?!
Wenn Du fragen musst ...

Tatsächlich hast Du weder ein Betriebssystem (ab Vista gibt es "icacls") genannt, noch den Inhalt der Textdatei näher beschrieben (zB, ob vollständige Pfade oder für jeden Ordner eine oder mehrere zu berechtigende Gruppen enthalten sind, ...).
Bitte warten ..
Mitglied: Xaero1982
17.03.2011 um 17:16 Uhr
Hi Bastler,

super vielen Dank für die Erklärungen!

VG & Thx

PS: Huch, da hast du natürlich recht
Server 2008 R2 betrifft das ...

Stimmt, aber ich kann ja vor dem %%i bei md %%i den Pfad angeben oder? Also z.b. G:\
Ansonsten soll erst mal jeweils nur eine Gruppe Zugriff bekommen ... ggf. einzelne Nutzer, aber das muss ich von Hand nachreichen, weil das noch nicht so eindeutig ist ...

Ach ja icacls ... bin ich nicht draus schlau geworden ...
Bitte warten ..
Mitglied: bastla
17.03.2011 um 17:22 Uhr
Hallo Xaero1982!
ich kann ja vor dem %%i bei md %%i den Pfad angeben oder? Also z.b. G:\
Ja, kannst Du; alternativ auch vorweg per "pushd" in den jeweilgen Ordner wechseln (und danach mit "popd" wieder zurück) - kommt auch darauf an, was ev sonst noch so alles passieren soll ...

Grüße
bastla
Bitte warten ..
Mitglied: Xaero1982
18.03.2011 um 14:58 Uhr
HI,

also im produktiven Einsatz zeigt sich nun, dass es doch nicht sonderlich effizient ist das so zu machen

Also was ich noch bräuchte wäre die Möglichkeit die entsprechende Sicherheitsgruppe mit in der Textdatei mit Anzugeben.

Z.b.

Ordnername,Sicherheitsgruppe
Ordnername2,Sicherheitsgruppe2

Weil ja jeder Ordner andere Berechtigungen hat + Administrator

Hast du dazu auch noch eine Idee?

VG & Thx
Bitte warten ..
Mitglied: bastla
18.03.2011 um 16:04 Uhr
Hallo Xaero1982!
Also was ich noch bräuchte wäre die Möglichkeit die entsprechende Sicherheitsgruppe mit in der Textdatei mit Anzugeben.
Hatte ich eigentlich schon erwartet ...

Wenn es zu jedem Ordner nur eine Gruppe (durch Komma getrennt - und bitte ohne Leerzeichen um das Komma herum) gibt, dann etwa so:
01.
@echo off & setlocal 
02.
set "Liste=D:\Ordnerliste.txt" 
03.
 
04.
for /f "usebackq tokens=1-2 delims=," %%i in ("%Liste%") do ( 
05.
    md "%%i" 2>nul 
06.
    echo j|cacls "%%i" /G Administratoren:F %%j:C 
07.
)
Wenn Du auch noch unterschiedliche Berechtigungen zu vergeben hättest, könntest Du gleich
Ordnername,Sicherheitsgruppe:Berechtigung
als Beispiel daher
Testordner,Sicherheitsgruppe1:C
in die Textdatei schreiben und die Rechte-Angabe in der Zeile 6 weg lassen:
echo j|cacls "%%i" /G Administratoren:F %%j
Grüße
bastla
Bitte warten ..
Mitglied: Xaero1982
18.03.2011 um 17:40 Uhr
Hi Bastler,

hach du bist genial

Sieht gut aus, bin jetzt aber nicht mehr vor Ort, aber ich denke genau das entspricht den Anforderungen die ich habe

Wobei ich mich frage: Woher nimmt der sich das "%%j"?
Wofür steht nun das "usebackq tokens=1-2"?

Tausend Dank!

VG & Thx
Bitte warten ..
Mitglied: bastla
18.03.2011 um 17:48 Uhr
Hallo Xaero1982!

Zum "usebackq" sage ich diesmal nix ...

"tokens=1-2" legt fest, dass die ersten beiden Teilstücke (entstehen durch die Trennung anhand es "delimiters" Komma) der Zeile verwendet werden sollen (Default wäre nur 1. Teil)
Woher nimmt der sich das "%%j"?
Der kennt das Alphabet und weiß daher, was nach "i" kommt ; außerdem weiß er, dass es 2 Teile geben soll - es müssen daher auch 2 Variablen verwendet werden ...

Grüße
bastla
Bitte warten ..
Mitglied: Xaero1982
18.03.2011 um 19:10 Uhr
Hi Bastla

Oki doki ... langsam kommt Licht ins Dunkel

Vielen Dank!

VG
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
Batch: .rar-Pakete automatisch Ordner erstellen und verschieben (2)

Frage von BowserMD zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Ordner erstellen und verschieben (6)

Frage von Fromeonly zum Thema Batch & Shell ...

Batch & Shell
Ordner erstellen ll Datei hinein kopieren (1)

Frage von heyalice zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (22)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...