Jump to content

Script zur aut. Erstellung von Ordnern in 3 Ebenen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo,

ich habe das Script von thorgood zur aut. Erstellung von Usern umgebaut.

 

Ich möchte eine txt auslesen. In dieser stehen Daten eines Bundeslandes in der Form:

Kreis__________________Gemeinde______________Gemarkung

ALTENBURGER LAND________ALTENBURG, STADT________ZSCHAIGA

ALTENBURGER LAND________ALTENBURG, STADT________ZSCHECHWITZ

ALTENBURGER LAND________ALTENBURG, STADT________ZSCHERNITZSCH

ALTENBURGER LAND________ALTKIRCHEN______________ALTKIRCHEN

ALTENBURGER LAND________ALTKIRCHEN______________GIMMEL

ALTENBURGER LAND________ALTKIRCHEN______________GÖDISSA

ALTENBURGER LAND________ALTKIRCHEN______________GÖLDSCHEN

 

Anhand dieser Daten in der 'ordner.txt' sollen im Windows-Explorer in der 1. Ebene Kreis-Ordner, darunter Gemeinde-Ordner, darunter Gemarkungs-Ordner erstellt werden.

 

Das Script funktioniert bereits, nur kommt es leider nicht mit den Leerzeichen klar.

 

Die vbs-Datei liest die txt aus und ruft die Batch 'ordner.cmd' auf.

Als Parameter werden natürlich Kreis, Gemeinde und Gemarkung übergeben.

Leider kommen die Daten bei der Batch zerteilt an, woran das Leerzeichen schuld ist.

 

Beispiel für Zeile 1:

%1 Altenburger

%2 Land

%3 Altenburg

%4 Stadt

%5 ZSCHAIGA

 

Eigentlich hatte ich folgendes Ergebnis erwartet:

%1 Altenburger Land

%2 Altenburg, Stadt

%3 ZSCHAIGA

 

Im Ergebnis werden die Ordner natürlich auch in der falschen Form erstellt.

 

Frage:

Wie kann ich die Parameterübergabe vbs-Script an Batch-Datei so steuern, das die Werte nicht getrennt werden?

 

Anbei das Script:

Dim fso, f, Zeile

Set fso = CreateObject("Scripting.FileSystemObject")

Set f = fso.OpenTextFile ("test.txt",1,0)

Do while not f.AtEndOfLine

Zeile = f.readLine

'Feld = split(Zeile,";")

'Kreis = Feld(0)

Gemeinde = Feld(1)

Gemarkung = Feld(2)

 

Call OrdnerAnlegen(Kreis,Gemeinde,Gemarkung)

Loop

f.Close

Wscript.Quit(0)

 

Sub OrdnerAnlegen (Kreis,Gemeinde,Gemarkung)

Dim WshShell, ret

Set WshShell = WScript.CreateObject("WScript.Shell")

ret = WshShell.Run ("Ordner.cmd " & Kreis & Gemeinde & Gemarkung)

End Sub

 

 

...und die Batch-Datei Ordner.cmd:

:Kreis

if exist D:\Ordner\%1 goto Gemeinde

md D:\Ordner\%1

 

:Gemeinde

if exist D:\Ordner\%1\%2 goto Gemarkung

md D:\Ordner\%1\%2

 

:Gemarkung

if exist D:\Ordner\%1\%2\%3 goto Ende

md D:\Ordner\%1\%2\%3

 

:Ende

pause

Link zu diesem Kommentar

Hallo Erdbeerenesser,

 

geht es nicht, wenn Du aus:

ret = WshShell.Run ("Ordner.cmd " & Kreis & Gemeinde & Gemarkung)

das:

ret = WshShell.Run ("Ordner.cmd " & "Kreis" & "Gemeinde" & "Gemarkung")

machst?

 

Sonst kannst Du Dir auch die "CreateFolder()" Methode aus dem FileSystemObject anschauen, dann kannst Du auf den zusätzlichen batch verzichten.

 

lg

Reiner

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...