WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Dateien umbenennen (Winone?) (http://www.wcm.at/forum/showthread.php?t=116213)

Warsi 21.11.2003 14:55

Dateien umbenennen (Winone?)
 
hallo

ich hab folgendes problem:

ein ordner mit (über 1000) pdf's, die alle irgendwie benannt sind.
ich möchte sie jetzt so umbenennen, dass der "titel" der dateiname ist.

dazu hab ich folgendes getan:
per "Midas Extractor" alle files in plain text umgewandelt
in der ersten zeile steht jetzt immer das, wie die pdf's heissen sollen

per WinOne hab ich dann folgendes gemacht:

READLN 1007.txt 1
STRTRIM %readln%
STRSPLIT -1 %STRTRIM%
ren 1007.pdf "%STRSPLITA%.pdf"

das funktioniert jetzt aber eben nur für ein einzelnes file.
wie mach ich das ganze jetzt für alle files in dem ordner?
ich komm mit der FOR schleife, die das programm bietet komm ich nicht klar.. bekomm immer syntax error

weiss jemand wie das richtig funktioniert oder wie ich es sonst lösen könnte das problem?

vielen dank
warsi

flinx 21.11.2003 16:52

Habe das kurz angeschaut. Sollte mit
Code:

FOR %%i IN (*.txt) do (
READLN %%i 1
STRTRIM %readln%
STRSPLIT -1 %STRTRIM%
STRREP ".txt" ".pdf" %%i
ren %STRREP% "%STRSPLITA%.pdf" )

funktionieren. STRREP musst du noch austesten und die Pfade ev. anpassen.
Ohne Gewähr. :)

Warsi 21.11.2003 17:10

werds bei nächster gelegenheit probieren

hatte aber die schleife eh so.. glaub ich zumindest :)

danke jedenfalls

Warsi 27.11.2003 17:18

funktioniert leider noch nicht ganz..
obwohl das ganze schon funktionieren würde (für ein dateienpaar.. also einmal txt und dazugehörige pdf datei)
nur mit der for schleife haut irgendwas nicht hin
%%i hat zwar wenn man es ausgibt den richtigen wert (den aktuellen txt dateinamen)
aber readln %%i 1 ist nie ein aktueller wert
obwohl ich noch nicht rausgefunden hab welchen wert er da hernimmt (der letzte ist es nicht immer)
wenn man in den ordner nämlich ein neues dateienpaar dazugibt, dann hat readln %%i trotzdem noch den wert, den es zuvor hatte
führt man die batch datei noch ein paar mal aus, dann gibt er für %readln% den letzten wert aus.

@echo off
cls
FOR %%i IN (*.txt) do (
echo eingelesene Textdatei: %%i
READLN %%i 1
echo eingelesene Textzeile: %READLN%
STRTRIM %readln%
STRSPLIT -1 %STRTRIM%
STRREP ".txt" ".pdf" %%i
echo Dazugehoerige PDF Datei: %strrep%
echo Neuer Dateiname: %strsplita%.pdf
REM ren %strrep% "%STRSPLITA%.pdf"

echo Die Datei %strrep% wurde zur Datei %STRSPLITA%.pdf umbenannt

echo -----------------NEXT LOOP STEP------------------- )


ergibt die ausgabe:

eingelesene Textdatei: 1007.txt
eingelesene Textzeile: Rover 25 1,4 Classic
Dazugehoerige PDF Datei: 1158.pdf
Neuer Dateiname: Rover 25 1,4 Classic.pdf
Die Datei 1158.pdf wurde zur Datei Rover 25 1,4 Classic.pdf umbenannt
-----------------NEXT LOOP STEP-------------------
eingelesene Textdatei: 1020.txt
eingelesene Textzeile: Rover 25 1,4 Classic
Dazugehoerige PDF Datei: 1158.pdf
Neuer Dateiname: Rover 25 1,4 Classic.pdf
Die Datei 1158.pdf wurde zur Datei Rover 25 1,4 Classic.pdf umbenannt
-----------------NEXT LOOP STEP-------------------
eingelesene Textdatei: 1158.txt
eingelesene Textzeile: Rover 25 1,4 Classic
Dazugehoerige PDF Datei: 1158.pdf
Neuer Dateiname: Rover 25 1,4 Classic.pdf
Die Datei 1158.pdf wurde zur Datei Rover 25 1,4 Classic.pdf umbenannt
-----------------NEXT LOOP STEP-------------------

flinx 27.11.2003 18:23

Versuch:
Code:

@echo off
cls
FOR %%i IN (*.txt) do {
echo eingelesene Textdatei: %%i
READLN %%i 1
echo eingelesene Textzeile: %READLN%
STRTRIM %readln%
STRSPLIT -1 %STRTRIM%
STRREP ".txt" ".pdf" %%i
echo Dazugehoerige PDF Datei: %strrep%
echo Neuer Dateiname: %strsplita%.pdf
REM ren %strrep% "%STRSPLITA%.pdf"

echo Die Datei %strrep% wurde zur Datei %STRSPLITA%.pdf umbenannt

echo -----------------NEXT LOOP STEP-------------------
}

http://www.winone.com.au/command-grouping.html

Warsi 28.11.2003 15:23

hi

vielen dank für die hilfen
hat so funktioniert
und hat mir viiiel arbeit erspart :)

warsi


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag