"Massen-Rename" in Win-XP
Wedekind
- software
2 Vinzenz Mai1 seth0 Vinzenz Mai0 seth
0 Tommy0 seth
0 Primus
Guten Abend,
kann mir jemand ein Freewareprogramm empfehlen, mit dem ich in einem Verzeichnis und allen Unterverzeichnissen Programmnamen ändern kann,
z.B. *.htm ===> *.shtml
Schreiben kann ich ein solches nicht, da ich keine Programmierefahrung habe.
Danke
Hallo
kann mir jemand ein Freewareprogramm empfehlen, mit dem ich in einem Verzeichnis und allen Unterverzeichnissen Programmnamen ändern kann,
z.B. *.htm ===> *.shtml
Ja, folgende Batchdatei sollte Deinen Wunsch erfüllen:
Einfache Version:
@ECHO OFF
FOR /R %%I IN (%1\*.%2) DO REN "%%I" "%%~nI.%3"
Aufruf: pfad\zu\Skript LW:Pfad\zu\Verzeichnis alt neu
Erweiterte Version mit Kommentaren:
@ECHO OFF
REM ----------------------------------------------------------------
REM Aufruf: pfad\zu\Skript LW:Pfad\zu\Verzeichnis alt neu
REM erwartete Übergabeparameter
REM Pfad steht in %1
REM alte Endung steht in %2
REM neue Endung steht in %3
REM Schalter für rekursives durchlaufen ist /R
REM Anführungszeichen um die Parameter von REN, damit es keine
REM Probleme mit Leerzeichen bei den Pfadbezeichnungen bzw. Dateinamen
REM gibt.
FOR /R %%I IN (%1\*.%2) DO REN "%%I" "%%~nI.%3"
Schreiben kann ich ein solches nicht, da ich keine Programmierefahrung habe.
Diese kann man sich erwerben.
Tipp: Kopiere die Batchdatei in ein Verzeichnis, das sich im Suchpfad von Windows befindet.
Freundliche Grüße
Vinzenz
gudn tach!
FOR /R %%I IN (%1\*.%2) DO REN "%%I" "%%~nI.%3"
ich habe es jetzt nicht ausprobiert, aber vermute trotzdem mal, dass es
FOR /R %1 %%I IN (*.%2) DO REN "%%I" "%%~nI.%3"
heissen muesste.
(insofern faend ich auch eine andere parameterreihenfolge, naemlich
pfad\zu\skript alt neu pfad
also FOR /R %3 %%I IN (*.%1) DO REN "%%I" "%%~nI.%2"
besser, da dann der dritte parameter optional wird.)
prost
seth
Hallo seth,
FOR /R %%I IN (%1\*.%2) DO REN "%%I" "%%~nI.%3"
funzt[tm], hab' ich getestet. Das ist das einzige Argument, was für meine Version spricht. Entstanden durch einfaches Copy & Paste eines etwas älteren Postings.
ich habe es jetzt nicht ausprobiert, aber vermute trotzdem mal, dass es
FOR /R %1 %%I IN (*.%2) DO REN "%%I" "%%~nI.%3"
Ja, laut HELP FOR ist das die richtige Syntax für FOR /R
(insofern faend ich auch eine andere parameterreihenfolge, naemlich
pfad\zu\skript alt neu pfad
also FOR /R %3 %%I IN (*.%1) DO REN "%%I" "%%~nI.%2"
besser, da dann der dritte parameter optional wird.)
Das hätte ich selbst nicht besser machen können ;-)
Du hast doch bestimmt ein Perlskript dazu gepostet ... schnelle Suche ... Treffer :-)
Freundliche Grüße
Vinzenz
gudn tach Vinzenz!
FOR /R %%I IN (%1\*.%2) DO REN "%%I" "%%~nI.%3"
funzt[tm], hab' ich getestet.
hmm, ich jetzt auch mal, unter w2k:
C:\foo\bar>tree /a /f
Auflistung der Ordnerpfade für Datenträger [...]
Datenträgernummer: [...]
C:.
+---baz
| foogle.mp3
| oogle.txt
|
+---quuux
| boogle.c
|
---quux
bork.vim
gork.pl
zork.h
C:\foo\bar>FOR /R %I IN (c:\foo\bar\*.txt) DO @echo REN "%I" "%~nI.htm"
C:\foo\bar>FOR /R c:\foo\bar %I IN (*.txt) DO @echo REN "%I" "%~nI.htm"
REN "c:\foo\bar\baz\oogle.txt" "oogle.htm"
C:\foo\bar>
und das macht imho auch sinn, da in der klammer ja ein absoluter pfad angegeben wurde, weshalb die rekursive suche nix bringen kann.
ist das verhalten unter xp da anders?
Du hast doch bestimmt ein Perlskript dazu gepostet [...]
;-) regulaere ausdruecke sind einfach geila. ;-)
prost
seth
moin Forum,
ich finde es so besser:
@echo off
Set /P alt=Wie lautet die alte Dateierweiterung?
Set /P neu=Wie lautet die neue Dateierweiterung?
Set /P ordner=In welchem Verzeichnis soll umbenannt werden?
Echo Im Verzeichnis %ordner% werden die Dateierweiterungen von %alt% auf %neu% umbenannt.
pause
FOR /R %ordner% %%I IN (*.%alt%) DO REN "%%I" "%%~nI.%neu%"
Die Batchdatei in ein Toolverzeichnis, Verknüpfung ins Startmenü, der Rest erfolgt bei Aufruf.
Gruß
Tommy
gudn tach!
ich finde es so besser:
Set /P [...]
am besten mag evtl. eine kombination sein:
zuerst pruefen, ob parameter uebergeben wurden. falls ja, diese verwenden.
sonst: variablen abfragen.
der vorteil von parametern ist, dass man solche batchfiles auch wieder gut in anderen batchfiles einbauen kann, um prozesse zu automatisieren, mit denen der user nicht genervt werden soll.
prost
seth
Hallo!
z.B. *.htm ===> *.shtml
Ist das wirklich nur ein Beispiel, oder willst du den Batch _nur_ dafür verwenden? Dann wäre es nämlich bedeutend einfacher, wenn du dir eine .htaccess-Datei auf dem Server anlegtst/erweiterst. Die genaue Vorgehensweise ist hier dokumentiert: http://httpd.apache.org/docs/1.3/howto/ssi.html#configuringyourservertopermitssi. Dann sparst du dir, die Links anzupassen. Denn du kannst die Endung "html" behalten.
MfG
Primus