alik
Goto Top

Script um automatische Verzeichnissstruktur anzulegen

Hallo Zusammen,

ich suche ein Script oder ein Tool mit dem ich eine leere Verzeichnisstruktur auf einer Windowsmaschine anlegen kann.
Ziel ist es einen Namen und ein Pfad einzugeben und dann soll das Script die vorher definierte Struktur automatisch anlegen.

z.B. Name: Project01
Pfad: \\Server01\Projecte\

Dann soll es vom Script angelegt werden:

\\Server01\Projecte\Project01\Fotos
\\Server01\Projecte\Project01\Infos
\\Server01\Projecte\Project01\Doc
\\Server01\Projecte\Project01\Doc_2005

usw. in der Art und Weise.

Gibt es sowas?

Mfg
Alik

Content-ID: 21200

Url: https://administrator.de/contentid/21200

Ausgedruckt am: 26.11.2024 um 11:11 Uhr

Atti58
Atti58 08.12.2005 um 09:26:40 Uhr
Goto Top
Du kannst ja auch einer Batch-Datei eine Variable übergeben, z.B.

@echo OFF
mkdir \\Server01\Projecte\%1%\Fotos
mkdir \\Server01\Projecte\%1%\Infos
mkdir \\Server01\Projecte\%1%\Doc
mkdir \\Server01\Projecte\%1%\Doc_2005

speichern als "Erzeuge.bat" und Aufruf als "Erzeuge Project01"

sollte funktionieren,

Gruß

Atti
Biber
Biber 10.12.2005 um 03:47:44 Uhr
Goto Top
Moin alik,

Atti's Skizze kannst Du so nehmen, aber jeweils ohne das Prozentzeichen hinter der "%1".

also statt ........mkdir \\Server01\Projecte\%1%\Fotos
jeweils ...........mkdir \\Server01\Projecte\%1\Fotos
..usw.
Und ich würde den Parent-Ordner entweder "Projects" oder "Projekte" nennen. "Projecte" wirkt irgendwie zu multikulti... face-wink
MfG Biber
Alik
Alik 13.12.2005 um 14:36:46 Uhr
Goto Top
Vielen Dank für Eure Hilfe. Ich habe ein VB Script gefunden bei dem alles super ist und es macht genau was ich will.

Set FS = CreateObject ("Scripting.FileSystemobject")
strAufNr = Inputbox("Projektnummer")
strAuftragname = Inputbox("Projektname")
strAuftrag = strAufNr & "_" & strAuftragname
FS.CreateFolder "h:\Project001\"& strAuftrag
FS.CreateFolder "h:\Project001\"& strAuftrag &"\"& strAufNr &"_Contract"
FS.CreateFolder "h:\Project001\"& strAuftrag &"\"& strAufNr &"_Contract\Contract_Kapo"
FS.CreateFolder "h:\Project001\"& strAuftrag &"\"& strAufNr
usw...

Meine Frage an VB experten. Kann ich dieses Script noch dazu bringen den Pfad ebenfalls als Variable abzufragen? Das wäre wirklich super.

Herzlichen Dank
Alik
Biber
Biber 13.12.2005 um 15:06:43 Uhr
Goto Top
Moin alik,
'--------snipp *.vbs
Set FS = CreateObject ("Scripting.FileSystemobject")
strRootFolder=InputBox("Laufwerk und Pfad des übergeordneten Ordners:")
strAufNr = Inputbox("Projektnummer")
strAuftragname = Inputbox("Projektname")
strAuftrag = strAufNr & "_" & strAuftragname
FS.CreateFolder strRootFolder &"\"& strAuftrag
FS.CreateFolder strRootFolder &"\"& strAuftrag &"\"& strAufNr &"_Contract"
FS.CreateFolder strRootFolder &"\"& strAuftrag &"\"& strAufNr &"_Contract\Contract_Kapo"
FS.CreateFolder strRootFolder &"\"& strAuftrag &"\"& strAufNr
usw...
'-------snapp *.vbs


:: -----------oder als CMD-batch
@echo off & setlocal
Set /P strRootFolder="Laufwerk und Pfad des übergeordneten Ordners:"
Set /p strAufNr="Projektnummer? "
Set "strAuftrag=%strAufNr%_%strAuftragname%"
Pushd %strRootfolder%
md %strRootfolder%\%strAuftrag%
md %strRootfolder%\%strAuftrag%\%strAufNr%_Contract
md %strRootfolder%\%strAuftrag%\%strAufNr%_Contract\Contract_Kapo
md %strRootfolder%\%strAuftrag%\%strAufNr%
::..usw
popd
::------------als CMD-batch

HTH Biber
fullbasic
fullbasic 09.08.2006 um 23:00:23 Uhr
Goto Top
Hallo HTH Biber,

ist es möglich, das ganze Script zu posten?

Danke und einen schönen Abend
Biber
Biber 09.08.2006 um 23:13:34 Uhr
Goto Top
Moin fullbasic,

na ja, was fehlt Dir denn noch?

Beim VBS-Schnipsel kommt am Ende noch ein "Set FS=nothing" (der Ordnung halber, aber auch verzichtbar...), sonst fehlt bei beiden Varianten noch eine Fehlerbehandlung /Vollzugsmeldung und ein entsprechender exit(n) bzw. ErrorLevel-Wert.

Was brauchst Du denn anders?

Gruß
Biber
fullbasic
fullbasic 09.08.2006 um 23:26:28 Uhr
Goto Top
Moin Biber,

sorry der Nachfrage. Ich bin noch nicht so bewandert in VB und daher die Frage nach dem ganzen Script. face-wink

Gruss
Gerrit
Biber
Biber 09.08.2006 um 23:40:19 Uhr
Goto Top
Nein, fullbasic,

kein "sorry" nötig, ich wollte nicht schroff erscheinen.

Aber bei dem VBS-Schnipsel kommt wirklich nichts Zwingendes mehr - das ist nach dem letzten erforderlichen FS.CreateFolder einfach abrupt und unerwartet zu Ende.
Denn es gibt da (in diesem Beispiel) keine Struktur mit Subs oder Functions.
Ist ja einfach nur ein stupider Batch-Ablauf par excellance (stumpf ein Befehl nach dem anderen, ohne jegliche Programmlogik).

Von daher ist vermutlich der sittliche Nährwert bzw. der potentielle Lerneffekt bei diesem Beispiel eher gering.

Das heißt, wenn es Einsteiger neugierig macht auf Skripting oder zum Eintippen von "FileSystemObject Methoden" bringt, dann bin ich schon zufrieden.

Gruß
Biber
fullbasic
fullbasic 09.08.2006 um 23:58:40 Uhr
Goto Top
Ok, Biber,

dann ist es wohl zu spät oder es klappt bei mir nicht. Bekomme in Zeile 6 Zeichen 1 die Meldung das der Pfad nicht gefunden wurde.
Biber
Biber 10.08.2006 um 11:19:24 Uhr
Goto Top
@fullbasic
hmmm... kann sein, wenn der strRootfolder selbst nicht existiert... das wird ja nicht überprüft.

Bei existierendem RootFolder klappt der Rest der Skizze.

Gruß
Biber
fullbasic
fullbasic 10.08.2006 um 13:31:46 Uhr
Goto Top
Hallo Biber,

was ist, wenn der Rootfolder existiert? face-wink

gruss
fullbasic
Biber
Biber 10.08.2006 um 13:51:16 Uhr
Goto Top
Also, fullbasic,

ich habe vorhin zum Test die ersten paar Zeilen des VBS-Schnipsels kopiel und laufen lassen.

Bei Eingabe von
- "D:\temp\backup1" als strRootfolder/1. Inputbox (dieses Verzeichnis existierte bei
mir)
- "4711" als Projektnr/2. Inputbox
- "test" als Auftragname /2.Inputbox

...kam bei mir raus:
dir backup1\47* /b /s
D:\temp\backup1\4711_test
D:\temp\backup1\4711_test\4711_Contract

Works as designed, wie wir Biber sagen...
fullbasic
fullbasic 24.10.2006 um 19:17:45 Uhr
Goto Top
Hallo Biber,

ist es mit dem Script möglich, das man in die Verzeichnisse auch Word und/oder Excel Dateien anlegen kann, die aus einer Vorlage kommen?

gruss
fullbasic