Ich habe ein paar Fotos mit unterschiedlichen Namen.
Ich möchte jedem Foto einen zufälligen Namen (*) geben . Wie mache ich das?
(*) Ich werde sie auf einen digitalen Fotorahmen legen, der nicht gemischt werden kann
Ich habe ein paar Fotos mit unterschiedlichen Namen.
Ich möchte jedem Foto einen zufälligen Namen (*) geben . Wie mache ich das?
(*) Ich werde sie auf einen digitalen Fotorahmen legen, der nicht gemischt werden kann
Antworten:
Angenommen, alle Bilder befinden sich in einem einzigen Ordner, würde dies in Powershell funktionieren:
Get-ChildItem *.jpg | ForEach-Object{Rename-Item $_ -NewName "$(Get-Random)-$($_.Name).jpg"}
Es ist möglich, dass Sie potenzielle Namenskollisionen erhalten, aber Get-Random gibt standardmäßig ein 32-Bit-Int ohne Vorzeichen von 0 bis Int32.MaxValue (0 bis 2147483647) zurück. Sie könnten sicherlich ein weiteres Get-Random hinzufügen, um die Wahrscheinlichkeit einer Kollision zu verringern, genau wie in der Bash-Antwort.
Eine Möglichkeit, wenn Sie eine Bash-Shell zur Hand haben, ist die Verwendung der $RANDOM
Umgebungsvariablen. Es werden zufällige Werte zwischen 0 und 32767 generiert.
Eine einfache for-Schleife in Bash funktioniert einwandfrei, wenn Sie nur einige hundert Dateien haben.
for i in *.jpg; do mv -i "$i" ${RANDOM}.jpg; done
Da ich ungefähr 4000 Dateien umbenennen musste, bekam ich bald Kollisionen, die die -i
Flagge mv
abfing. Das Hinzufügen eines weiteren hat $RANDOM
sich darum gekümmert.
for i in *.jpg; do mv -i "$i" ${RANDOM}${RANDOM}.jpg; done
"${RANDOM}${RANDOM}.jpg"
dir könnte man auch sagen "${RANDOM}-$i"
. Dies vermeidet Kollisionen und behält die alten Namensinformationen bei (sowie erfüllt die Anforderungen an die zufällige Sortierung).
Die meisten Batch-Datei-Renamer können dies, hier ist einer
Einfache Methode wäre eine fortlaufende Nummerierung der Datei, ich bin sicher, es gibt andere Optionen mit dieser Software, verwenden Sie Ihre Fantasie.
Hier ist die, die ich für Massenumbenennungsaufgaben verwende