Ein Wort aus dem Namen einer Datei entfernen mit einer Batch-Datei?

3 Antworten

Wie fit bist Du denn mit Batch-Programmierung?

Wenn Du Dir zutraust, eine Stapeldatei zu schreiben, lad Dir 4DOS herunter und befasse Dich da mit 

"FILE LISTS" und "VARIABLE FUNCTIONS"

Bei den Variable Functions hilft Dir die Funktion "@INSTR", um den gesuchten zu löschenden Bestandteil des Dateinamens zu extrahieren und zu entfernen.

Wenn die Startpostition des zu löschenden Strings innerhalb des Dateinamens variabel ist, weil der vorhergehende Namensteil unterschiedliche Längen haben kann, nimm "@RTRIM"

Hat der zu löschende Teil immer den gleichen Inhalt, kannst Du auch "@STRIP" nehmen.

Etwas "SET" gehört natürlich dazu.


Luinya 
Beitragsersteller
 21.10.2015, 14:01

Ich habe mich erst glaub ich vor ca. 2 Tagen damit befasst? Also ich bin WIRKLICH neu in diesem Bereich. 4DOS kenne ich leider nicht o: Ich werde es mir mal anschauen. Danke schön für diese Antwort c:

0

Ich würde dafür VBScript verwenden. Damit hast du mehr Kontrolle als mit klassischem Batch.

Dim C_PFAD_ARBEITSVERZEICHNIS
C_PFAD_ARBEITSVERZEICHNIS = left(WScript.ScriptFullName,(Len(WScript.ScriptFullName))-(len(WScript.ScriptName))) Dim fso Dim oVerzeichnis Dim oDateiliste Dim sDateiNeu Dim sToFind : sToFind = "_bearbeitet-1" Set fso = CreateObject("Scripting.FileSystemObject") Set oVerzeichnis = fso.GetFolder(C_PFAD_ARBEITSVERZEICHNIS) Set oDateiliste = oVerzeichnis.Files For Each oDatei in oDateiliste sDateiNeu = Replace(oDatei.Name, sToFind, "") if not fso.FileExists(C_PFAD_ARBEITSVERZEICHNIS & sDateiNeu) then _ oDatei.Name = sDateiNeu Next MsgBox "Fertig"

Speichere den Quelltext in eine Datei mit der Endung vbs und lege sie ins Verzeichnis mit den Bildern.

Woher ich das weiß:Berufserfahrung – Programmierer

Luinya 
Beitragsersteller
 21.10.2015, 14:00

Ich vermute, ich muss irgendwelche Sachen ersetzen oder? o: Wenn ja welche? :3 Die, die du gross geschrieben hast? Oder gar nichts? :x
Danke schön, dass du dir auch Zeit genommen hast, das alles zu schreiben ^-^

0
Suboptimierer  21.10.2015, 14:10
@Luinya

Du musst nichts ersetzen, das macht das Skript ;P

Das Skript löscht "_bearbeitet-1" aus allen Dateinamen des Verzeichnisses, in dem das Skript liegt.

0
Luinya 
Beitragsersteller
 21.10.2015, 14:30
@Suboptimierer

Wow ich habe es gerade versucht, es funktioniert! Danke schön :3 Falls du noch etwas Zeit oder Lust hast, könntest du mit ein paar dieser Befehle kurz erklären? o: z.B. dieses "Dim" - wofür das gut ist ^-^

0
Suboptimierer  21.10.2015, 14:35
@Luinya

Dim brauchst du nicht, wenn du mit Pfusch leben kannst ;)

Es kündigt an: "Es folgt eine Variable, die unten verwendet werden will."
Bei sauberer Programmierung würde man ganz am Anfang des Skripts "Option Explicit" schreiben. Damit würde man sich selbst die Pflicht auferlegen, jede Variable, die verwendet wird, zuvor mit Dim bekannt zu geben.

Aber die Befehle und Objekte lassen sich auch sehr leicht ergoogeln ;)

0
Jonas971  27.05.2022, 16:08

Was müsste man am Code ändern bzw. hinzufügen, damit auch alle Unterordner einer Datei betroffen sind?

0

Probiere es mit VBS. Damit hab ich es auch mal gemacht, ist einfacher und variabler.