alforno
Goto Top

Batch - Datei über das Kontextmenü (Senden an) des Windows Explorer umbenennen

Hallo,

ich möchte eine beliebige Word Datei mittels Batch umbenennen.
Als Ergebnis soll der neue Dateiname das Änderungsdatum sowie einen festen Text beinhalten (Beispiel: 2019-10-20_Test.docx).

Meine Idee war dies über das Kontextmenü der Datei und den Befehl "Senden an" zu lösen.

Ich kann den Dateinamen sowie den Dateityp auslesen und jeweils in einer Variable speichern.
Für das Umbenennen benötige ich den Pfad der Datei.

Beim Versuch den Pfad auszulesen erhalte ich immer nur den Pfad der .bat Datei.

Jemand eine Idee?

Danke.

Schöne Grüße
Alforno

Content-ID: 507079

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

Ausgedruckt am: 22.11.2024 um 11:11 Uhr

141575
141575 20.10.2019 aktualisiert um 16:41:56 Uhr
Goto Top
for /f "tokens=1" %%a in ("%~t1") do ren "%~1" "%%a_Test%~x1"  
Alforno
Alforno 20.10.2019 um 15:47:07 Uhr
Goto Top
Hallo Chickenwing,

vielen Dank für die schnelle Rückmeldung.

Funktioniert, sofern im Pfad keine Leerzeichen enthalten sind, andernfalls erhalte ich einen Syntaxfehler.
Kann man das optimieren?

Vielen Dank für deinen Einsatz.

Schöne Grüße
Alforno
141575
141575 20.10.2019 aktualisiert um 16:20:16 Uhr
Goto Top
Doch geht auch mit Leerzeichen hier getestet, deswegen ist auch alles vorschriftsmäßig gequoted.
Alforno
Alforno 20.10.2019 um 16:31:30 Uhr
Goto Top
Sobald sich im Pfad ein Ordner befindet, der ein Leerzeichen enthält bekomme ich einen Syntaxfehler.
Ändere ich den Ordnernamen ab, funktioniert es.

So sieht die Ausgabe mit Fehler aus:

C:\Program Files (x86)\tools>ren ""C:\Users\Administrator\Desktop\neuer Ordner\test.txt"" "20.10.2019_Test.txt"
Syntaxfehler.


Schöne Grüße
Alforno
141575
141575 20.10.2019 aktualisiert um 16:42:46 Uhr
Goto Top
Dann hast du es fehlerhaft kopiert, kopiere es nochmal. Denn %~1 entfernt bereits die entsprechenden Quotes um den Parameter. Hier geht es nämlich einwandfrei auf mit Leerzeichen, du musst einen Fehler gemacht haben. Habe es oben noch etwas vereinfacht. Ist ja ehrlich gesagt alter Pippifax den man blind runter tippt ...

Tschö.

edit: "echo" da für den Test da war noch entfernt
Alforno
Alforno 20.10.2019 aktualisiert um 16:50:21 Uhr
Goto Top
Bei mir leider nicht.
Die Ursprungsversion funktioniert ohne Leerzeichen.

Die verkürzte Version funktioniert bei mir weder ohne noch mit Leerzeichen im Pfad.

Getestet habe ich es am Windows 7 Client und am Server 2012 R2.
Das Verhalten ist bei beiden Maschinen identisch.

Schöne Grüße
Alforno
141575
141575 20.10.2019 aktualisiert um 17:06:24 Uhr
Goto Top
s. mein Kommentar
edit: "echo" da für den Test da war noch entfernt

Geht überall einwandfrei. Mach ich doch x mal am Tag!
Alforno
Alforno 20.10.2019 um 16:50:10 Uhr
Goto Top
Bingo, geht.
Klasse.

Kann man das Datum auch noch in mein Wunschformat bringen?

Schöne Grüße
Alforno
141575
Lösung 141575 20.10.2019 aktualisiert um 16:55:58 Uhr
Goto Top
Weil heut Sonntag ist
@echo off &setlocal EnableDelayedExpansion
for /f "tokens=1" %%a in ("%~t1") do (set "fdate=%%a" &ren "%~1" "!fdate:~-4!-!fdate:~3,2!-!fdate:~0,2!_Test%~x1")  
Alforno
Alforno 20.10.2019 um 16:58:33 Uhr
Goto Top
Klasse, vielen Dank.
Hast mir sehr geholfen.

Schöne Grüße
Alforno