Mehrfach-Umbenennen mit Zufallszahl

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
Brainbug
Junior Member
Junior Member
Posts: 3
Joined: 2008-12-21, 22:20 UTC

Mehrfach-Umbenennen mit Zufallszahl

Post by *Brainbug »

Hi,

kann mir einer einen Trick verraten, wie ich bei der Mehrfachumbenennung dem Dateinamen eine Zufallszahl vorwegstellen kann?

Ziel ist es Kopien von ein paar Tausend Bilder für einen Digitalen Fotorahmen zufällig umzubenennen. Dieser hat leider keine Shuffle-Funktion.

eins noch: Totalcommander, tolles Programm! Ist mir wichtiger als das Betriebssystem :wink:

Schöne Grüße, Arno.
User avatar
Dalai
Power Member
Power Member
Posts: 10003
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

kann mir einer einen Trick verraten, wie ich bei der Mehrfachumbenennung dem Dateinamen eine Zufallszahl vorwegstellen kann?
Geht nicht im TC. Aber du kannst dir ein Batch-Skript zusammenschreiben. Ich werd mal was entwerfen und meld mich dann wieder.

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
Dalai
Power Member
Power Member
Posts: 10003
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

So könnte das z.B. aussehen:

Code: Select all

@echo off

setlocal enabledelayedexpansion

for %%i in (%*) DO (
    pushd "%%~dpi"
    call :RAND_NR "%%~nxi"
    echo "%%~nxi" -^> "!rand!_%~nx1"
    ren "%%~nxi" "!rand!_%%~nxi"
    popd
)
goto END

:RAND_NR
set rand=%random%
if exist "%rand%_%~1" goto BLUB
goto :EOF

:END
endlocal
pause
Dazu erzeugst du dir einen Button:

Code: Select all

TOTALCMD#BAR#DATA
cmd.exe /c "random.cmd"
%P%S
%COMMANDER_PATH%\TOTALCMD.EXE,3

C:\

-1
(Code kopieren und mit der rechten Maustaste auf einen freien Bereich der Symbolleiste einfügen)

Dann nur noch Dateien markieren und Button drücken :). Fragen? ;)

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
Lefteous
Power Member
Power Member
Posts: 9537
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

Ich habe mal einen kleinen Inhaltsplugin geschrieben, der ein Feld bereitstellt, dass Zufallszahlen zurückliefert. Inhatslplugins kann man im Mehrfachumbenenn-Tool nutzen, in dem man auf den Button mit dem "?" drauf drückt.

http://lefteous.totalcmd.net/tc/archives/misc/misc_1.03.zip
Brainbug
Junior Member
Junior Member
Posts: 3
Joined: 2008-12-21, 22:20 UTC

Post by *Brainbug »

Ihr seid kreative Helden!
Zum einen hatte ich mir (wenn überhaupt) nicht vor 2009 Hilfe erhofft und zum anderen habt Ihr mir 2 Lösungen gebracht.

@Dalai
Ich kämpfte noch mit der Umgebung und war leider noch nicht am Ziel. Mit DOS bin ich nicht mehr so ganz auf einer Wellenlänge. Aber ich lerne gerne dazu - was sind ~nxi bzw. ~nx1?
Derzeit bekomme ich lediglich eine Fehlermeldung: Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.
Kann es ein, dass die rename.cmd nicht gefunden wird? Wo sollte die stehen? Zugriffsrechte (Vista)?

@Lefteous
Einwandfrei! Plugin hinzugefügt und über den Plugin-Button in der Umbenennmaske benutzt: [=misc.random]_[N]
5-stellig ... ich hoffe das gibt keine Kollision ... das wird ja sicher nicht berücksichtigt sein? Oder lassen sich noch Parameter angeben? Naja, ich kann ja die Zufallszahl auch doppelt einfügen.

Bislang hatte ich mit einem anderen ReNamer den MD5-Hash der Datei dem Dateinamen vorangestellt. Das dauert natürlich ein Weilchen und lässt sich nur einmal als Zufallszahl missbrauchen.

Vielen Dank euch beiden!
User avatar
Dalai
Power Member
Power Member
Posts: 10003
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

Brainbug wrote:Kann es ein, dass die rename.cmd nicht gefunden wird? Wo sollte die stehen?
Wenn du den Code der Batch oben nicht als rename.cmd gespeichert hast, fehlt sie natürlich ;). Ich habe das oben nicht mit erwähnt, weil ich dachte, dass es sich aus dem Button ergibt. Wo du das Skript speicherst, ist egal. Du musst dann aber den Pfad im Button anpassen.
Brainbug wrote:Aber ich lerne gerne dazu - was sind ~nxi bzw. ~nx1?
Das ist die üblich kryptische Spezialsyntax von MS...
Die Tilde ~ entfernt die Anführungszeichen von Dateinamen, damit ich sie explizit wieder setzen kann, ohne sie doppelt zu haben oder unausgeglichen.

n steht für den Dateinamen selbst (ohne Extension)
x steht nur für die Extension (mit führendem Punkt)
i ist der Platzhalter innerhalb der for-Schleife und die 1 ist der übliche erste Parameter der Batch bzw. des mit call aufgerufenen Batch-Abschnitts.

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Brainbug
Junior Member
Junior Member
Posts: 3
Joined: 2008-12-21, 22:20 UTC

Post by *Brainbug »

Den Code hatte ich als myrandom.cmd wg. Vollzugriff auf D:\ gespeichert und im Button als cmd.exe /k "D:\myrandom.cmd" eingetragen.
Startpfad ist ebenfalls D:\
Also soweit war das schon klar.
Ich bastel mal morgen ein bisschen daran ... müsste ja eigentlich auch gehen

nxi habe ich verstanden.
Post Reply