Umbenennen des 1. Zeichens sämtlicher Dateinamen

Hallo,
Sämtliche Dateinamen der Dateien eines Ordners beginnen mit einem ±Zeichen (+test1, +test2 pp). Sie sollen alle in der Weise umbenannt werden, daß sie die neuen Dateinamen vd-test1, vd-test2 pp. erhalten.

Kann man diese Arbeit automatisieren, wenn ja, wie?
Gruß
Wilhelm

Hallo Wilhelm,

also wenn Du wirklich nur das 1. Zeichen umbenennen willst, mach eine DOS-Box auf und gib ein:

ren A\*.\* B\*.\*

wobei A der Ausgangsbuchstabe ist (bei Dir „+“) und B der Zielbuchstabe.

Das funktioniert allerdings NICHT, wenn Du Zeichen einfügen willst, also z.B. „+“ -> „vd-“, wo Du aus einem drei Zeichen machst. Da das aber wahrscheinlich das ist, was Du brauchst, weiß ich spontan auch keinen Rat (VB-Programm?)

Gruß

Sculpture

Hallol Sculpture,
Danke für Deinen Hinweis, aber ich benötige leider jeweils zwei weitere Zeichen im Dateinamen, wird also manuell gemacht.
Gruß
Wilhelm

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Kannst auch ein VB-Progrämmchen schreiben. (Du kannst ja VB…)

versuchs mal mit dem Filesystem-Object, (Verweis setzen auf Microsoft Scripting Runtime).

Dort kannst Du durch alle gewünschten Files Loopen, oder For-Eachen oder wie du willst.

Mit Befehlen wie MID und LEN usw. kannst Du Strings manipulieren, aber das kennst du wohl schon…

Gruss, Daniel

Hi,

das sollte wunderbar mit dem Windows Commander möglich sein:
http://www.ghisler.com

Ciao
Holger

Hallo Wilhelm,

öffne ein neues VB-Projekt mit einer DriveListBox, einer DirListBox und einer FileListBox sowie einem Button. In die Form kommt der folgende Code:

Private Sub Command1\_Click()
 p = Dir1.Path & "\" ' Hole Verzeichnis
 d = Dir(p) ' Hole erste Datei
 While d ""
 Name p & d As p & "vd-" & Mid(d, 2) ' Umbenennen
 d = Dir ' Nächste Datei
 Wend
 File1.Refresh ' Liste aktualisieren
End Sub
 
Private Sub Dir1\_Change()
 File1.Path = Dir1.Path
End Sub
 
Private Sub Drive1\_Change()
 Dir1.Path = Drive1.Drive
End Sub

Die Zeile mit dem „Name“ musst Du entsprechend anpassen, im Moment macht sie genau das, was Du willst, nämlich das erste Zeichen (z.B. „+“) durch „vd-“ ersetzen.

Gruß

Sculpture

Hallo,
ich habe es kurz getestet, hat funktioniert.
Kopier dir sicherheitshalber alle Dateien in einen neuen Ordner ‚Test‘.
Dort erzeugst du dann eine test.bat mit folgendem Inhalt:

ren +*.* -*.*
lfnfor on
for %%a in (-*.*) do ren %%a vd%%a

Gruß
olala

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Daniel,

Deine sehr liebenswürdige Formulierung (Du k a n n s t ja VBA), schmeichelt mir sehr, trifft aber kaum die Realität: um das VB-Progrämmchen schreiben zu können, müßtest Du mir die kryptische Zeile:

versuchs mal mit dem Filesystem-Object, (Verweis setzen auf
Microsoft Scripting Runtime).

näher erklären; also nimmt mich an der Hand und verklickere mir so fremde Begriffe wie Filesystem-Object u. Microsoft Scripting Runtime), dann versuche ich mich sofort am Progrämmchen.
Gruß
Wilhelm

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,
Du scheinst eine sehr elegante, kurze Lösung für mein Problem gefungen zu haben. Könntest Du bitte die einzelnen Schritte der Prozedur für mich erläutern und mir dann auch noch erklären, wie ich die test.bat erzeuge? Zur Erklärung: Ich komme nicht aus dem Entwickler-, sondern aus dem Anwenderbereich und habe nur Anfangskenntnisse in VBA.
Danke u. Gruß
Wilhelm

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,
Du scheinst eine sehr elegante, kurze Lösung für mein Problem
gefungen zu haben. Könntest Du bitte die einzelnen Schritte
der Prozedur für mich erläutern und mir dann auch noch
erklären, wie ich die test.bat erzeuge? Zur Erklärung: Ich
komme nicht aus dem Entwickler-, sondern aus dem
Anwenderbereich und habe nur Anfangskenntnisse in VBA.
Danke u. Gruß
Wilhelm

Hallo Wilhelm,
nein, VBA kann ich nicht, dies ist eine kleine Batchdatei für/in DOS. Erzeugen kannst du die test.bat mit jedem reinen Text-Editor (Edit, Notepad,…)
In der test.bat habe ich keine Pfadangaben angegeben, sie ‚arbeitet‘ nur in dem Verzeichnis wo sie sich selbst befindet, du mußt sie also dorthin wo die +name-Dateien stehen reinkopieren oder beim Erstellen gleich dort abspeichern.
Vor dem Aufruf der test.bat, sicherheitshalber alle +name-dateien (und sonstige Dateien aus dem Verzeichnis) irgendwohin sichern.
Dann die test.bat z.B. mit Start–>Asführen–>Durchsuchen–> etc starten. Bei Erfolg sind dann alle ‚+name‘-Dateien im Verzeichnis in ‚vd-name‘-Dateien umbenannt.

In der test.bat dürfen nur die drei Befehlszeilen:

ren +*.* -*.*
lfnfor on
for %%a in (-*.*) do ren %%a vd%%a

stehen. jetzt die Befehle einzeln:

ren +*.* -*.*
Ren (rename) bennent im aktuellen Verzeichnis alle ‚+name‘-Dateien in ‚-name‘-Dateien um

lfnfor on
Meistens können Dos-Befehle nur Dateien in 8.3-Syntax (12345678.123) bearbeiten und längere Dateinamen erzeugen Fehler. Lfnfor ermöglicht der nachfolgenden For-Schleife den Umgang mit langen Dateinamen

for %%a in (-*.*) do ren %%a vd%%a
Die Variable %%a nimmt in einer For-Schleife (entspricht sehr grob der For-Next-Schleife in Programmiersprachen) alle Werte, die in der Klammer angegeben sind, an.
In diesem Fall steht in der Klammer der Ausdruck ‚-*.*‘ stellvertretend für alle dateien im Verzeichnis die im Namen vorne ein ‚-‘ haben. Für jede dieser Dateien wird dann das nach dem ‚do‘ stehende ausgeführt. In diesem Fall dann ‚ren %%a vd%%a‘, was der nacheinander Ausführung von ren -name1 vd-mame1, ren -name2 vd-name2, … entspricht. Dos-Logik bedingt würden diese ren-Befehle einzeln nicht wie gewünscht funtioneren, sie klappen so nur in einer For-Schleife.

Gruß
olala

1 „Gefällt mir“

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Wieder was dazugelernt! :smile:
.