peter58ha
Goto Top

WSH - Dateien umbennnen

Hallo zusammen,

ich bin absoluter Neuling in Sachen WSH und benötige eure Hilfe bei einem Script, welches Dateien umbenennt.

Hier das Beispiel:

Original-Name:

011_ASPRs 17Jan2018 <<--- zwischen dem ASPRs und dem Datum ist in der Dateibezeichnung immer eine Leertaste...
012_ASPRs 18Jan2018
...

so soll das Ergebnis sein:

17-01-18
18-01-18
...

Ich habe für jedes Jahr eben knapp 300 solcher Dateien und denke mal, dass das eine Aufgabe für WSH ist un d
nicht für mich mit dem Adler-Suchsystem auf der Tastatur.... face-wink


Sonnige Grüße aus Hagen

Peter

PS: falls diese Frage unter "Windows Tools" nicht richtig sein sollte, bitte verschieben - Danke!

Content-Key: 371956

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

Ausgedruckt am: 19.03.2024 um 02:03 Uhr

Mitglied: 136037
Lösung 136037 23.04.2018 aktualisiert um 19:05:48 Uhr
Goto Top
Const FOLDER = "D:\Ordner"  
Set fso = CreateObject("Scripting.Filesystemobject")  
Set regex = CreateObject("vbscript.regexp")  
regex.IgnoreCase = True
regex.Pattern = "(\d{2})([a-z]{3})(\d{4})$"  

For Each fldr In fso.GetFolder(FOLDER).SubFolders
	Set match = regex.Execute(fldr.Name)
	If match.count > 0 Then
		d = CDate(match(0).submatches(0) & " " & match(0).submatches(1) & " " & match(0).submatches(2))  
		strDate = Right("0" & Day(d),2) & "-" & Right( "0" & Month(d),2) & "-" & Year(d)  
		fldr.Move fso.BuildPath(FOLDER,strDate)
	End If
Next
MsgBox "Finished."  
ÄNDERUNG: Anpassung auf Unterordner und keine Dateien

Gruß
Mitglied: peter58ha
peter58ha 23.04.2018 um 15:46:47 Uhr
Goto Top
Hallo duolingo!

Vielen Dank für Deine fixe Antwort!
Ich habe Deinen Code in einer vbs Datei gespeichert und nur den Pfad in Zeile sieben geändert:

von:

For Each file In fso.GetFolder("A:\peter58").Files

in

For Each file In fso.GetFolder("C:\XML\Firma").Files

Das Script läuft ohne Fehlermeldung durch - aber ändert keinen einzigen Dateinamen... face-sad
Was mache ich falsch?

Vielen Dank für Deine Hilfe und Geduld!

Peter
Mitglied: 136037
Lösung 136037 23.04.2018 aktualisiert um 15:49:14 Uhr
Goto Top
Tippfehler, ist korrigiert. Pfad bitte in der Konstanten in Zeile 1 ändern, nicht an anderer Stelle!!
Mitglied: peter58ha
peter58ha 23.04.2018 um 16:33:22 Uhr
Goto Top
face-sad sorry duolingo...

das gleiche Ergebnis... Script läuf tfehlerfrei durch, aber es wird kein Dateiname geändert...

Der Fehler ist bestimmt bei mir, ich hab hier Windows 10 pro 64 bit laufen...

Vielen Dank nochmal

Peter
Mitglied: 136037
Lösung 136037 23.04.2018 aktualisiert um 18:21:45 Uhr
Goto Top
Doch läuft wurde getestet! Du hast keine Dateiendung in deinem Beispiel angegeben, das Skript geht von Dateien ohne Dateiendung aus so wie du es oben angegeben hast!!
D.h. die Namen die du oben gelistet hast also bspw. 012_ASPRs 18Jan2018 interpretiere ich als kompletten Dateinamen. Ist das nicht der Fall muss der Regex angepasst werden bzw. du mir sagen was wirklich Sache ist!
Mitglied: peter58ha
peter58ha 23.04.2018 um 18:34:19 Uhr
Goto Top
vor den Kopp schlag...

au weia...

Da hab ich einen schweren Patzer eingebaut...
Nicht die Dateien, sondern die Ordner sollen umbenannt werden...
Ich werde hier gerade knallrot

sorry.....


Peter
Mitglied: 136037
Lösung 136037 23.04.2018 um 18:54:37 Uhr
Goto Top
s. Anpassung oben ...
Mitglied: peter58ha
peter58ha 23.04.2018 um 19:25:30 Uhr
Goto Top
... oh oh...

ich trau mich kaum zu schreiben...

Laufzeitfehler... face-sad
wsh
Mitglied: 136037
Lösung 136037 23.04.2018 aktualisiert um 23:05:37 Uhr
Goto Top
tja dann verwendest du nicht die zur Systemsprache passenden Monatsabkürzungen ganz einfach face-smile. Also z.B. bei einem englischen System statt DEC = DEZ, und genau das führt zu dieser Meldung, das war genau meine Intention das du dich damit beschäftigst, aber war ja klar andackeln ist ja bequemer . Das lass ich dir jetzt als Hausaufgabe ...du sollst ja auch was lernen und nicht nur kopieren :-P. Stichwort = Select Case.
Mitglied: peter58ha
peter58ha 24.04.2018 um 17:24:31 Uhr
Goto Top
Vielen Dank für Deinen Hinweis.

Da ich keine Idee habe, wie ist das mit dem Select Case mache, hab ich nun den Monatsnamen MAR auf MRZ geändet und schon läuft das Schript.
Vielen Dank nochmal für Deine Geduld

Peter