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-ID: 322477

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

Ausgedruckt am: 05.11.2024 um 19:11 Uhr

Kedakai
Kedakai 30.11.2016 um 13:33:30 Uhr
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.
cberndt
cberndt 30.11.2016 um 15:14:07 Uhr
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
Kedakai
Kedakai 30.11.2016 um 15:27:51 Uhr
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.
cberndt
cberndt 30.11.2016 um 17:21:14 Uhr
Goto Top
###.....eeee.. ich brauch es für windows face-sad kannst du mir sagen ob und wie das mit der Batch geht?
BassFishFox
BassFishFox 30.11.2016, aktualisiert am 01.12.2016 um 03:30:56 Uhr
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
cberndt
cberndt 01.12.2016 um 05:37:07 Uhr
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 ;)
131381
131381 01.12.2016 aktualisiert um 06:34:33 Uhr
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!
cberndt
cberndt 01.12.2016 um 10:57:53 Uhr
Goto Top
Ein Traum es klappt ;) Ich danke dir Mikrotik
131381
131381 01.12.2016 aktualisiert um 12:32:43 Uhr
Goto Top
Na dann bitte auch das "gelöst" nicht vergessen. Danke.