masquerade
Goto Top

VBS Script Ordner Erstellen und Namen durch Inhalt in txt.Datei auf Ordner schreiben

Hallo Administrator.de Mitglieder,

ich habe ein Problem mit VB Scripten. Ich möchte per Notepad eine ausführbare .vbs schreiben. Anforderungen : Es soll ein Ordner erstellt werden, in einer Textdatei befindet sich der Ordnername der über den Neu erstellten Ordner geschrieben werden soll. Es soll eine Prüfung stattfinden ob der Ordner bereits vorhanden ist, wenn ja soll Ordner nicht erstellt werden, wenn nicht soll erstellt werden. Bisher sieht das Skript wie folgt aus :

Set fso = CreateObject("Scripting.FileSystemObject")  
zielpfad = "Pfad"  
Set neuordner = fso.CreateFolder(zielpfad)
Set WshShell = CreateObject("WScript.Shell")  
Set oExplorer = WshShell.Exec("Pfad")  
wscript.echo "Ordner Erfolgreich erstellt" 'Ist eine direkte Ausgabe auf den Bildschirm'  
Set datei = fso.GetFile("Pfad")  
set WShell = WScript.CreateObject("WScript.Shell")  
Set fso = CreateObject("Scripting.FileSystemObject")  
pfadname1 = "Pfad"  
pfadname2 = "Pfad"  
if fso.FolderExists(pfadname1) then
Set ordner = fso.GetFolder(pfadname1)
else
Set ordner = fso.CreateFolder(pfadname2)
end if
MsgBox "Ordner " + chr(34) + ordner.name + chr(34) + " angelegt!"  
Ich habe die Vermutung das der Text für ein geübtes Auge sehr furchtbar aussieht. Bisher habe ich erfolgreich über Sendkeys einen Ordner generiert und Namen vergeben, allerdings ist der Zeitaufwand der gleiche als ob ich händisch einen Ordner Anlege und Namen vergebe.

Ich hoffe Ihr könnt mir weiterhelfen.

[Edit Biber] Zum gefühlten 23ten Mal heute Codeformatierung nachgetragen [/Edit]

Content-Key: 172355

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

Ausgedruckt am: 29.03.2024 um 14:03 Uhr

Mitglied: 60730
60730 31.08.2011 um 12:18:30 Uhr
Goto Top
moin,

das ist doch ein klassischer Fall von einem einzeiler, der aus einer For Schlaéife besteht - muß dasn unbedingt in VBS sein?

Außerdem - wenn ein Ordner schon existiert, kommt beim Versuch einen mit gleichem Namen anzulegen - max. ein Fehler Ordner schon vorhanden - mehr nicht - raus.

Gruß
Mitglied: 99045
99045 31.08.2011 um 12:43:22 Uhr
Goto Top
Hi,

Zitat von @Masquerade:
Ich habe die Vermutung das der Text für ein geübtes Auge sehr furchtbar aussieht. Bisher habe ich erfolgreich über

Deine Vermutung täuscht dich nicht, er sieht nicht nur für ein geübtes Auge furchtbar aus, sondern für alle, die sich mit deinem Script beschäftigen würden, wenn du die angebotenen Code-Tags (Formatierungshilfe) verwenden würdest. Das geht übrigens auch über > Ändern/Bearbeiten.

Gruß
Mitglied: Masquerade
Masquerade 31.08.2011 um 13:52:26 Uhr
Goto Top
Danke für die Antwort,

die Vorgabe ist, dass es mit vbs realisiert werden soll. Daher hatte ich gehofft das es schon jemand erfolgreich erstellt hat. Ich befasse mich aktuell seit 18Stunden mit vbs, allerdings bisher durch Googlen sehr viel Input gefunden, welcher noch nicht verarbeitet wurde.

gruß
Mitglied: bastla
bastla 31.08.2011, aktualisiert am 18.10.2012 um 18:48:07 Uhr
Goto Top
Hallo Masquerade und willkommen im Forum!

Was bedeutet denn
der Ordnername der über den Neu erstellten Ordner geschrieben werden soll

Generell würde für einen vorgegebenen Pfad das Erstellen eines Ordners etwa so aussehen:
zielpfad = "D:\Pfad"  

Set fso = CreateObject("Scripting.FileSystemObject")  
If Not fso.FolderExists(zielpfad) And Not fso.FileExists(zielpfad) Then
    fso.CreateFolder(zielpfad)
    WScript.Echo "Ordner """ & zielpfad & """ erfolgreich erstellt"  
Else
    WScript.Echo "Ordner """ & zielpfad & """ konnte nicht erstellt werden"  
End If
Wenn ich Deine Beschreibung so interpretiere, dass der Pfad des anzulegenden Ordners aus (der ersten Zeile) einer Datei zu lesen ist, dann etwa so:
dateipfad = "D:\Pfad.txt"  

Set fso = CreateObject("Scripting.FileSystemObject")  
If Not fso.FileExists(dateipfad) Then
    WScript.Echo "Datei """ & dateipfad & """ nicht gefunden"  
Else
    Set Datei = fso.OpenTextFile(dateipfad)
    If Datei.AtEndOfStream Then
        WScript.Echo "Datei """ & dateipfad & """ ist leer"  
    Else
        zielpfad = Datei.ReadLine
        Datei.Close

        If Not fso.FolderExists(zielpfad) And Not fso.FileExists(zielpfad) Then
            fso.CreateFolder(zielpfad)
            WScript.Echo "Ordner """ & zielpfad & """ erfolgreich erstellt"  
        Else
            WScript.Echo "Ordner """ & zielpfad & """ konnte nicht erstellt werden"  
        End If
    End If
End If
Grüße
bastla

P.S.: Kaputtnick hatte einen Hinweis für Dich ...
Mitglied: Masquerade
Masquerade 31.08.2011 um 19:58:15 Uhr
Goto Top
Halle Bastla,

vielen dank für deine schnelle und ausführliche Hilfe. Ich denke das der Hinweis für die Formatierungshilfe auf die Nummerierungen für das Script waren. Allerdings habe ich auch geschrieben das es über das Notepad realisiert wird. Somit habe ich keine Aufzählung in der Formatierung.

Momentan scheine ich das Problem allerdings gelöst zu haben. Kann ich dich auch per Nachricht anschreiben falls zu neuen Problemen kommt ?

Vielen dank für deine Hilfe und deine Script Hinweise.

Gruß, Masquerade
Mitglied: bastla
bastla 31.08.2011 um 20:08:10 Uhr
Goto Top
Hallo Masquerade!
Ich denke das der Hinweis für die Formatierungshilfe auf die Nummerierungen für das Script waren.
Der Hinweis bezieht sich auf die hier im Forum - wie das Ergebnis aussieht, siehst Du ja an meinem Script ...
Kann ich dich auch per Nachricht anschreiben falls zu neuen Problemen kommt ?
Das wird nicht nötig sein - solange der Thread nicht geschlossen ist, kannst Du ihn ergänzen (und auch den "Gelöst"-Status rückgängig machen) - ansonsten verkraftet die Forendatenbank sicher auch noch ein, zwei neue Beiträge face-wink ...

Grüße
bastla
Mitglied: Masquerade
Masquerade 02.09.2011 um 09:49:39 Uhr
Goto Top
Hallo bastla !

Hier wieder eine neue Frage, ich habe ja das Script soweit fertig das ich Paramter übergeben kann und diese als Ordnerbeschriftung übernehme. Ich habe also ein Script das einen Ordner erstellt, auf bereits existierenden Ordnernamen prüft und angehängte Parameter als Ordnername übernommen werden. Wie schaffe ich es, den übergebenen Parameter im selben Script über den wsh.shellrun Befehl im Explorer zu öffnen ?

Grüße

Masquerade
Mitglied: 99045
99045 02.09.2011 um 10:56:16 Uhr
Goto Top
Hi,

http://technet.microsoft.com/de-de/dd940112.aspx

Der Thread ist als "gelöst" gekennzeichnet. Wenn du ihn weiterführen willst, solltest du die Einstellung wieder deaktivieren.
Du scheinst auf Hinweise recht schwerfällig zu reagieren, denn darauf hatte dich bastla schon aufmerksam gemacht.

Gruß
Mitglied: 60730
60730 02.09.2011 um 11:06:45 Uhr
Goto Top
Moin,

Zitat von @Masquerade:
Wie schaffe ich es, den übergebenen Parameter im selben Script über den wsh.shellrun Befehl im Explorer zu öffnen ?

  • grübel - lass mal raten Meine Kristallkugel sagt mir, du mußt in deiner zeile 7 und in Zeile 31 was ändern.

  • Ist denn das posten "seines" Scriptes so schwer, das man sich daran einen Bruch hebt?
  • Sind die "eigenen" Änderungen an bastlas Ansatz Patentierungswürdig? geben und nehmen?
  • Muß man/ kann man nicht mal Explorer in vbs starten in eine Suchmaschine werfen?

Ich mein ja nur.....
Mitglied: 99045
99045 02.09.2011 um 11:21:19 Uhr
Goto Top
Zitat von @60730:
  • Muß man/ kann man nicht mal Explorer in vbs starten in eine Suchmaschine werfen?

Offensichtlich muss man nicht. Hier wird - wie man sieht - jeder trotz fehlender Eigeninitiative bestens bedient.
Den Rest erspare ich mir ...... face-smile
Mitglied: Masquerade
Masquerade 02.09.2011 um 11:27:26 Uhr
Goto Top
Guten Morgen.

natürlich ist das alles gerechtfertigt und auch nachvollziehrbar. Allerdings wenn ich nur kurz einen Tip brauche und der Meinung bin das hier Experten, Profis oder einfach erfahrene Nutzer sind, ist ein ganzes Script für einen einzigen Befehl unrelevant. Habe den Befehl gefunden wshshell.run ("Explorer [Gewünschter Pfad"] & [Angegebenes Argument] , dieser kleine Befehl war doch nun sicher kein ganzes Script wert. Ihr seit ja nicht verpflichtet zu antworten, dass dieser Thread geschlossen wurde, war natürlich mein Fehler, wird geändert. Ich finde es allerdings immer wieder "SUPER" das erfahrene Nutzer auf Google verweisen und nur wenige Nutzer tatsächlich Hilfestellung geben auch bei "nicht anspruchsvollen" Fragen. Also vielen dank an Bastla für den Script-Text.

Gruß
Mitglied: 60730
60730 02.09.2011 um 12:01:30 Uhr
Goto Top
moinsen again..

  • Was denkst du ist der Sinn eines Forums?

  • Frage / Gegenfrage / Lösung fertig?
  • Anderer Sucht, findet, - aber nur die Hälfte?

Von daher ist der Fred mit dem Titel
VBS Script Ordner Erstellen und Namen durch Inhalt in txt.Datei auf Ordner schreiben

eigentlich fertig - ein Zusatz
Wie schaffe ich es, den übergebenen Parameter im selben Script über den wsh.shellrun Befehl im Explorer zu öffnen ?

Ist dann doch entweder oder . oder nicht?

Ich mein ja nur....

Und das (einer von den jetzt 2en) mit dem "nicht anspruchsvollen" war ich - und zwar nach deiner Zusatzfrage....