cberndt
Goto Top

Dateinamen nach Zeichnen abschneiden - Batch-Shell

Hallo Leute
Ich möchte Dateien in einem Ordner mit Hilfe einer Batch/Shell Datei umbenenen. Die Dateien heißen:

253525_V_4834.jpg
2525212_V48333_25.jpg
25352355_V_42234.jpg
351525_V_4824.jpg

Nach dem _V sollen der Dateiname abgeschnitten werden!

Als am Ende:
253525_V.jpg
2525212_V.jpg
25352355_V.jpg
351525_V.jpg

Einen Richtigen Plan wie ich vorgehen soll habe ich leider nicht. Es sind ca 3000 Fotos. Was ich bisher habe ist

::--- Renamer.cmd
@echo off & setlocal enableDelayedExpansion 
for %%i in ("d:\pic\*%_V*.*") do (  
     set "neu=%%~nxi"   
     Echo ren "%%i" ("d:\pic\!neu:%_V=f!")  
) 
Pause

So kann ich das _V ersetzen aber es wird weder die Datei geändert noch wird etwas abgeschnitten face-sad

Content-Key: 322477

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

Printed on: April 20, 2024 at 03:04 o'clock

Member: Kedakai
Kedakai Nov 30, 2016 at 12:33:30 (UTC)
Goto Top
Ich kann es dir nur als Shell Skript geben:
#!/bin/bash

pfad=

cd $pfad
for files in $(ls -l); do
       dateityp=$(echo $files | cut -d '.' -f 2)  
       neuer_dateiname=$(echo $files | cut -d 'V' -f 1 | sed 's/_/_V/g')  
       mv $files $neuer_dateiname.$dateityp
done

#Super hässlich, würde so aber in einem Shell Skript funktionieren. Zumindest wenn die Dateinamen wie oben abgebildet sind.
Member: cberndt
cberndt Nov 30, 2016 at 14:14:07 (UTC)
Goto Top
Hi Kedakai

vielen Dank als erstes für dein Hilfe. Wie führe ich das aber unter windows aus? Ich habe mir eine .ps1 Datei mit dem Inhalt angelegt was aber leider nicht geklappt hat. Auch als .bat klappt es nicht face-sad
Member: Kedakai
Kedakai Nov 30, 2016 at 14:27:51 (UTC)
Goto Top
Du hast geschrieben, dass es auch ein Shell Skript sein kann.
Ein Shell Skript funktioniert auf Linux oder UNIX basierten Systemen.
In Windows wird das nicht funktionieren.
Member: cberndt
cberndt Nov 30, 2016 at 16:21:14 (UTC)
Goto Top
###.....eeee.. ich brauch es für windows face-sad kannst du mir sagen ob und wie das mit der Batch geht?
Member: BassFishFox
BassFishFox Nov 30, 2016, updated at Dec 01, 2016 at 02:30:56 (UTC)
Goto Top
Hallo,

Benutze doch einfach den Ant-Renamer.

http://www.antp.be/software/renamer/features

Oder Du hast W10? Dann kannst Du es mit dem o.g. Shell-Script machen.

http://www.howtogeek.com/261591/how-to-create-and-run-bash-shell-script ...

Zu guter letzt schau hier.
Dateinamen umschreiben batch

BFF
Member: cberndt
cberndt Dec 01, 2016 at 04:37:07 (UTC)
Goto Top
Danke dir Bass für den Link

@echo off & setlocal enabledelayedexpansion
set "quelle=D:\pic"  
set "ziel=D:\pic\2"  
set "csv=D:\pic\namen.csv"  
for /f "usebackq tokens=1,2 delims=;" %%a in ("%csv%") do (  
    for %%c in ("%quelle%\*%%a*") do (  
        set "name=%%~nxc"  
        copy "%%c" "%ziel%\!name:%%a=%%b!"  
    )
)
pause
macht auch fast was ich brauche nur schneidet es mit den Dateinamen nicht einfach nach dem _V ab. Um das Script nutzen zu können müßte ich immer den kompletten Rest meines Dateinamens haben.

Ich habe Windows 10 face-smile

Wie muß ich denn das Script anpassen ;)
Mitglied: 131381
131381 Dec 01, 2016 updated at 05:34:33 (UTC)
Goto Top
Für die unbekehrbaren Batch-Oldis ...
@echo off & setlocal
set "quelle=D:\pic"  
set "ziel=D:\pic\2"  
for %%a in ("%quelle%\*.jpg") do (  
    for /f "tokens=1 delims=_" %%b in ("%%~na") do copy "%%a" "%ziel%\%%b_V%%~xa"  
)
und für PS Junkies
gci 'D:\pic' -Filter *.jpg | ?{$_.Name -match '^(.*_V)'} | %{copy-item $_.Fullname -Destination "D:\pic\2\$($matches[1])$($_.Extension)"}  

Gruß

p.s. Für den Fehler im Titel gibt es den Bearbeiten-Button!
Member: cberndt
cberndt Dec 01, 2016 at 09:57:53 (UTC)
Goto Top
Ein Traum es klappt ;) Ich danke dir Mikrotik
Mitglied: 131381
131381 Dec 01, 2016 updated at 11:32:43 (UTC)
Goto Top
Na dann bitte auch das "gelöst" nicht vergessen. Danke.