Jump to content
Sign in to follow this  
michel0203

Batch - Dateinamen anpassen

Recommended Posts

Hallo zusammen,

 

ich müsste einen Haufen Dateien, die diese Struktur haben: .....

 

aaaaa11111.xyz

 

... per Batch in: ....

 

aaaaa.xyz

 

... umbenennen.

 

Qauasi nur die ersten 5 Zeichen plus extension.

 

Denke das wird ne for schleife, weiß aber nicht wie ich gesuchten Zeichen definiere, könnt ihr mir helfen.

 

Gruß Michel

Share this post


Link to post
Share on other sites

evtl. hilft dir das weiter:

Zeichen im String abschneiden, z.B. ab dem 11. Zeichen 5 Zeichen ausgeben:

%PATH:~10,5%

extrahiert die letzten 10 Zeichen der Variable PATH.

%PATH:~-10%

Zeichenketten ersetzen:

%PATH:str1=str2%

Share this post


Link to post
Share on other sites

Mir fehlt immer noch die Erleuchtung.

 

Ich dachte daran die Sache etwa so einzuleiten.

 

dir /b *.xyz > %log%

 

Somit habe ich die benötigten Dateinamen in einer txt.

Nun such ich nach einer Möglichkeit aus

 

aaaaa11111.xyz ..... aaaaa.xyz zu machen

 

Quasi, die ersten 5 Zeichen stehen lassen, 6-10 entfernen, extension lassen.

Share this post


Link to post
Share on other sites

Moin michel0203,

 

falls die Anforderung auch umformuliert werden kann in "entferne alle Ziffern aus dem Dateinamen", sprich alle Dateinamen beginnen mit einer Buchstabenfolge, die erhalten bleiben soll gefolgt von einer Zahlenfolge, die entsorgt werden darf, dann reicht eine kleine Zeile vom CMD-Prompt aus.

Demo:


>for %i in (d:\temp\*.xyz) do @for /f "delims=1234567890" %a in ("%~ni") do @echo ren "%i" "%a%~xi"
ren "d:\temp\aaaaa11111.xyz" "aaaaa.xyz"
[/Code]

 

Aber so oder so wirst Du Schwierigkeiten bekommen, alle "noch nicht umbenannten" Dateien zu trennen von den bereits umbenannten, wenn Du diese Zeile mehrmals abfeuerst.

Um Fehler beim Rename zu vermeiden, solltest Du also ergänzen.

[Code].....do IF "%~ni" NEQ "%a" ren "%i" "%a%~xi"
[/Code]

...um zu vermeiden, dass versucht wird, "aaaaa.xyz" in "aaaaa.xyz" umzubenennen.

 

Grüße

Biber

Share this post


Link to post
Share on other sites

Hi Biber, danke erst einmal.

 

Funzt (noch) nicht.

 

Habe es mal in einen Batch gepackt:

 

for %%i in (D:\batches_scripte\Spielwiese\*.xyz) do @for /f "delims=1234567890" %a in ("%~ni") do @echo ren "%%i" "%a%~xi" ren "D:\batches_scripte\Spielwiese\aaaaa11111.xyz" "aaaaa.xyz"

 

Kann auch kein "Debug" einsehen, funzt einfach nicht.

 

gruß michel

Share this post


Link to post
Share on other sites

Moin michel0203,

 

im batch müssen alle "einfachen" Prozentzeichen vor Zählvariablen durch "doppelte" ersetzt werden.

for %%i in (D:\batches_scripte\Spielwiese\*.xyz) do @(
for /f "delims=1234567890" %%a in ("%~ni") do @(
echo Ist ren "%%i" "%%a%%~xi"
Echo Soll: ren "D:\batches_scripte\Spielwiese\aaaaa11111.xyz" "aaaaa.xyz"
))
[/Code]

 

Debuggen von Einzeilern ist ein bisschen tricky, aber wenn es bezahlt wird, mach ich Dir das auch ;-)

 

Grüße

Biber

Share this post


Link to post
Share on other sites

Nachtrag: wie geschrieben, müssen ALLE einfachen %-Zeichen zu %% geändert werden.

Also wird auch das ....("%~ni")... zu ....("%%~ni").

 

Hast Du bestimmt sofort gemerkt, ich leider gerade eben erst. Sorry.

 

Grüße

Biber

Share this post


Link to post
Share on other sites

Hi Biber,

 

super, Danke!

 

-----------------------------------------------------------------------------------------------------

for %%i in (D:\batches_scripte\Spielwiese\*.xyz) do @(

for /f "delims=1234567890" %%a in ("%%~ni") do @(

ren "%%i" "%%a%%~xi"

))

-----------------------------------------------------------------------------------------------------

Der tut,

ich hoffe ich habe noch die Zeit über die Funktion hinaus das Dingen auch noch zu verstehen ;)

 

Gruß Micha

Share this post


Link to post
Share on other sites
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...