106942
Goto Top

Den Punkt . in Dateinamen per Batch ersetzen und Dateien später als Archiv packen

Hallo Leute!

Ich habe mal wieder ein Problem...
Ich benötige eine Batch, die mir den "." in meinen Dateinamen der csv-Dateien gegen einen "_" ersetz.
Von diesen Dateien sind immer recht viele da, so dass die Arbeit von Hand sehr mühselig ist.

Meine Dateien sehen so aus

VD-20120604.130030.csv
("VD-" ist fest, dann kommt das Datum, ändert sich täglich, der "." ist fest und dann kommt die Uhrzeit die sich auch immer ändert)

und sollen später so ausssehen

VD-20120604_130030.csv


Wenn das geschehen ist und alle Dateien im Ordner mit "_" versehen sind, sollen die Dateien mit RAR zu einem Archiv gepackt werden und den Namen der ersten CSV-Datei tragen. Geht sowas?

BEISPIEL

Ordnerinhalt Ausgangslage:
VD-20120604.130030.csv
VD-20120604.141030.csv
VD-20120604.153030.csv
VD-20120604.180030.csv
VD-20120605.090030.csv
VD-20120605.104030.csv

Gewünschte Ausgangslage:
VD-20120604_130030.rar
mit folgenden archivierten Dateien:
VD-20120604_130030.csv
VD-20120604_141030.csv
VD-20120604_153030.csv
VD-20120604_180030.csv
VD-20120605_090030.csv
VD-20120605_104030.csv


Habe schon nen bißchen rumgetüftelt, komme aber irgendwie nicht zum gewünschten Erfolg.
Vielleicht könnt ihr mir weiterhelfen.

Vielen Dank schonmal für eure Hilfe!!!!

Stefan

Content-Key: 186087

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

Printed on: April 25, 2024 at 09:04 o'clock

Member: bastla
bastla Jun 07, 2012 updated at 13:58:11 (UTC)
Goto Top
Hallo steffchen112 und willkommen im Forum!

Das könnte etwa so gehen:
@echo off & setlocal
set "Ordner=D:\Dein Ordner mit den vielen csv-Dateien"  
set "WinRAR=C:\Programme\WinRAR\RAR.exe"  

pushd "%Ordner%"  
set "Name="  
for /f "delims=" %%i in ('dir /b/on VD-*.*.csv') do (  
    for /f "tokens=1-3 delims=." %%a in ("%%i") do (  
        ren "%%i" "%%a_%%b.%%c"  
        if not defined Name set "Name=%%a_%%b.rar"  
    )
)
"%WinRar%" a "%Name%" VD-*_*.csv  
popd
Grüße
bastla