tommhii
Goto Top

Dateiname verkürzen, ändern und nummerieren

Hallo

ich hab eine Frage ich habe in einen Verzeichniss mehre Dateien wo ich mittels Batch den Dateinamen verkürzen ändern und nummerien möchte.

hier ein Beispiel so sehen die Dateien im Verzeichnis aus

Post.6662010001059.po1025c1rn81ex13woc8enz9kz65qrf5.20190412134439.71b..pdf
Post.6662010001059.po1025zhoyysuv5hfxzirx78isgj2m88.20190412132949.71b..pdf
Post.6662010001059.po1026jchsq1nf41xdm5f2cfytn5by9p.20190412133721.71b..pdf

und zu diesen Ergebnis möchte ich kommen.
Post.6662010001059.71b.20190412134439.1.pdf
Post.6662010001059.71b.20190412132949.2.pdf
Post.6662010001059.71b.20190412133721.3.pdf

kann mir jemand weiterhelfen

danke im voraus

Content-ID: 441143

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

Ausgedruckt am: 23.11.2024 um 01:11 Uhr

139374
139374 16.04.2019 aktualisiert um 10:35:06 Uhr
Goto Top
Still batch verfrickeling face-big-smile?? Richte deine Satschüssel mal neu aus face-wink.
@echo off
powershell -Executionpolicy ByPass -NoP -C "gci 'C:\daten' -File -Filter *.pdf | ?{$_.Basename -match '^(.+)\.(.+)\.(.+)\.(.+)\.(.+).'} | group {$matches[0..1]} | %%{$cnt = 1; $_.Group | %%{rename-item $_.Fullname -NewName \"$($matches[1]).$($matches[2]).$($matches[5]).$($matches[4]).$cnt.pdf\" ; $cnt++}}"  
tommhii
tommhii 16.04.2019 um 11:06:02 Uhr
Goto Top
Danke für Deine Antwort,

ich wollte das aber in einen Dos Batch laufen lassen. Hast Du dafür auch einen Lösung?

VG
Tommhi
139374
139374 16.04.2019 aktualisiert um 11:09:05 Uhr
Goto Top
Zitat von @tommhii:
ich wollte das aber in einen Dos Batch laufen lassen. Hast Du dafür auch einen Lösung?
Das oben ist eine Batch face-smile -> @echo off.
tommhii
tommhii 16.04.2019 um 11:21:26 Uhr
Goto Top
Ja stimmt, aber ich suche keine Lösung mit Powershell, da ich das in ein bestehendes Script einbauen möchte wo nicht mit Powershell gearbeitet wird.

Danke aber trotzdenm für Deine Mühe.

Vg
Tommhi
139374
139374 16.04.2019 aktualisiert um 12:32:34 Uhr
Goto Top
Auch das kein Thema, in der Schublade auf dem Dachboden kram...:
@echo off & setlocal ENABLEDELAYEDEXPANSION
set "folder=D:\test"  
set "lasttoken="  
for /f "delims=" %%a in ('dir /b /on "%folder%\*.pdf"') do (  
	for /f "tokens=1-5 delims=." %%b in ("%%~na") do (  
		if "!lasttoken!" NEQ "%%c" set cnt=1  
		ren "%folder%\%%a" "%%b.%%c.%%f.%%e.!cnt!.pdf"  
		set /a cnt+=1
		set "lasttoken=%%c"  
	)
)
Zu Empfehlen:
Tutorial zur FOR-Schleife
Dann kannst du es selbst und musst nicht jahrelang immer das selbe Thema erfragen face-wink.
tommhii
tommhii 16.04.2019 um 12:23:15 Uhr
Goto Top
Sieht gut aus in der DOS box steht zwar die richtige Anweisung, aber er führt die änderung am Dateinamen nicht durch.
139374
139374 16.04.2019 aktualisiert um 12:26:27 Uhr
Goto Top
Zitat von @tommhii:

Sieht gut aus in der DOS box steht zwar die richtige Anweisung, aber er führt die änderung am Dateinamen nicht durch.
Das war so vorgesehen das du überprüfen kannst was passieren würde. Entferne einfach das echo vor der Zeile 7 face-wink. Darauf hättest du aber auch selbst kommen können. Da sieht man mal wieder das hier nur Copy n' Paste gemacht wird und man sich die Anweisungen nicht einmal im Ansatz ansieht und versucht zu verstehen face-sad.
tommhii
tommhii 16.04.2019 um 12:28:14 Uhr
Goto Top
sorry geht
Danke Dir

VG
Tommhi
139374
Lösung 139374 16.04.2019 aktualisiert um 12:58:37 Uhr
Goto Top
Dann bitte auch Danke.