VBS Script Ergänzung - Dateinamen umbenennung

Red€y€

Lieutenant
Registriert
Sep. 2020
Beiträge
782
Moin,
vor langer langer Zeit hab ich mir mal ein Vbs Script erstellt, nun bräuchte ich eine Ergänzung und bitte daher um Hilfe.
Es ist einfach zu lange her, dass ich damit was zu tun hatte. 😚

Code:
Set Shell = WScript.CreateObject("WScript.Shell")
Set Parameter = WScript.Arguments
For i = 0 to Parameter.Count - 1
    Set fso = CreateObject("Scripting.FileSystemObject")
    Ordner=fso.GetParentFolderName(Parameter(i))
    Dateiendung=fso.GetExtensionName(Parameter(i))
    Dateiname=fso.GetFileName(fso.GetParentFolderName(Parameter(i)))
    fso.MoveFile Parameter(i),Ordner + "\" + Dateiname + "." + Dateiendung
Next

Ich hatte gerne das, dass Script zusätzlich am Ende des Dateinamens durchnummeriert, wenn ich mehrere Dateien draufziehe.
Also Wenn (If) & Check und sowas eben. Hier im Spoiler auch ein Beispiel:

Gegeben:
Ordnername: Base
Inhalt
A.datei
B.datei

durch draufziehn der Dateien soll nun daraus:
Base 1.datei
Base 2.datei
in Ordner Base werden.
Danke 😉
 
Code:
Set Shell = WScript.CreateObject("WScript.Shell")
Set Parameter = WScript.Arguments
For i = 0 to Parameter.Count - 1
    Set fso = CreateObject("Scripting.FileSystemObject")
    Ordner=fso.GetParentFolderName(Parameter(i))
    Dateiendung=fso.GetExtensionName(Parameter(i))
    Dateiname=fso.GetFileName(fso.GetParentFolderName(Parameter(i)))
    Durchlauf = i + 1
    fso.MoveFile Parameter(i),Ordner & "\" & Dateiname & " " & Durchlauf & "." & Dateiendung
Next
 
Zuletzt bearbeitet: (Beim Dateinamen Zusammenbau muss ein & verwendet werden :))
  • Gefällt mir
Reaktionen: Red€y€ und DaBo87
Vielen Dank.

Gerade bekomme ich zwar noch eine Fehlermeldung, muss ich mir später mal genauer ansehen. Kann gut sein das ich was vergessen habe.
Habe leider jetzt keine Zeit und hab es nur schnell getestet.
 
Für welche Zeile kommt denn die Fehlermeldung?
Ich habe noch nicht genug Kaffee intus, aber würde spontan vermuten, dass das Problem sein könnte, dass du versuchst den Filenamen des Ordners auszulesen. Ein Ordner ist aber kein file bzw. ist das ein anderes Objekt. Ich würde über die folder collection gehen und dann mit deinfolder.Name arbeiten
 
Fehler im Script ist oben behoben :)
Ergänzung ()

Und hIer noch die Variante ohne 1 im Dateinamen, wenn nur ein Dokument geändert wird

Code:
Set Shell = WScript.CreateObject("WScript.Shell")
Set Parameter = WScript.Arguments
For i = 0 to Parameter.Count - 1
    Set fso = CreateObject("Scripting.FileSystemObject")
    Ordner=fso.GetParentFolderName(Parameter(i))
    Dateiendung=fso.GetExtensionName(Parameter(i))
    Dateiname=fso.GetFileName(fso.GetParentFolderName(Parameter(i)))
    if Parameter.Count > 1 Then
        Durchlauf = " " & i + 1
    else
        Durchlauf = ""
    End If
    fso.MoveFile Parameter(i),Ordner & "\" & Dateiname & Durchlauf & "." & Dateiendung
Next
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Red€y€
Vielen Dank nochmal. Läuft nun, gerade getestet. Ist nun so für 99% der Falle perfekt. 😍

Es gab zwar bei einer möglichen Anwendung einen Fehler aber den werde ich kaum erzeugen bzw. dann umgehen.

@Demon_666
Zeile 9, Zeichen 5 (Typenkonflikt)
 
Zuletzt bearbeitet:
Zurück
Oben