1.4k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von
Hallo,

habe folgendes Problem:

Möchte uneindeutige Dateien (Endung verändert sich je nach datum Bspw: TEST290513, TEST300513 etc...) immer mit dem selben Programm ändern lassen. Es sollen Rautezeichen ersetzt werden.

Meine Idee ist es nun da der Anfang der Dateinamen immer gleich ist, diese Dateien zu kopieren so dass sie nach dem Kopieren einen eindeutigen Namen haben (hier: TEST), danach das Batch-Programm zum ersetzen drüberläuft und danach die veränderte TEST Datei wieder verschoben wird und TEST290513 oder wie das Datum eben ist heißt.

Dafür habe ich bisher folgendes Programm (auch mit Hilfe dieses Forums):


@ECHO off
SETLOCAL enabledelayedexpansion

REM
REM Testprogramm
REM Ersetzen von Zeichen und Schreiben in eine neue Datei
REM
REM lauffaehig ab Windows 2000
REM


SET "datei=PFAD+DATEINAME"
SET "ausgabe=PFAD+DATEINAME"
SET "suchzeichen=#"
SET "ersetzungszeichen=NR"


REM Datei zeilenweise auslesen
REM und in Variable "zeile" schreiben
FOR /f "delims=" %%i IN ('FINDSTR . "%datei%"') DO (
SET zeile=%%i& CALL :ersetzen !zeile!
)
GOTO :eof

:ersetzen
REM Das Suchzeichen mit dem Ersetzungsteichen tauschen
SET zeile=!zeile:%suchzeichen%=%ersetzungszeichen%!

REM Ergebnis in die Ausgabedatei schreiben
ECHO !zeile!>>%ausgabe%
GOTO :eof

:eof

hat jemand einen Vorschlag zur Umsetzung?

Mfg
faron

1 Antwort

0 Punkte
Beantwortet von computerschrat Profi (32.2k Punkte)
Hallo faron,

schau Dir mal das Programm Ant Renamer an. Damit kannst Du sehr flexibel Dateien auswählen und umbenennen. Damit sollte Deine Aufgabenstellung ohne zwischenkopieren direkt funktionieren.
Hier www.chip.de/downloads/Ant-Renamer_18204061.html kannst Du es finden, es gibt aber viele weitere Ecken, an denen das Programm zu finden ist.


Gruß
computerschrat
...