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-Key: 507079

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

Printed on: April 24, 2024 at 17:04 o'clock

Mitglied: 141575
141575 Oct 20, 2019 updated at 14:41:56 (UTC)
Goto Top
for /f "tokens=1" %%a in ("%~t1") do ren "%~1" "%%a_Test%~x1"  
Member: Alforno
Alforno Oct 20, 2019 at 13:47:07 (UTC)
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
Mitglied: 141575
141575 Oct 20, 2019 updated at 14:20:16 (UTC)
Goto Top
Doch geht auch mit Leerzeichen hier getestet, deswegen ist auch alles vorschriftsmäßig gequoted.
Member: Alforno
Alforno Oct 20, 2019 at 14:31:30 (UTC)
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
Mitglied: 141575
141575 Oct 20, 2019 updated at 14:42:46 (UTC)
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
Member: Alforno
Alforno Oct 20, 2019 updated at 14:50:21 (UTC)
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
Mitglied: 141575
141575 Oct 20, 2019 updated at 15:06:24 (UTC)
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!
Member: Alforno
Alforno Oct 20, 2019 at 14:50:10 (UTC)
Goto Top
Bingo, geht.
Klasse.

Kann man das Datum auch noch in mein Wunschformat bringen?

Schöne Grüße
Alforno
Mitglied: 141575
Solution 141575 Oct 20, 2019 updated at 14:55:58 (UTC)
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")  
Member: Alforno
Alforno Oct 20, 2019 at 14:58:33 (UTC)
Goto Top
Klasse, vielen Dank.
Hast mir sehr geholfen.

Schöne Grüße
Alforno