limitsunkn0wn
Goto Top

Verzeichnisnamen vergleichen?!

Wie kann man mit Batch das Verzeichnis mit der höchsten Zahl auswählen?!

Hallo Community,
Ich habe momentan ein Problem mit einem kleinen Batch-Script.
Ich möchte damit ein Verzeichnis auwählen und eine Datei daraus kopieren.

Das Problem: Die Ordner sind nummeriert (Bilder1, Bilder2 , Bilder3 , ... , Bilder53)
und nun soll die batchdatei, den Ordner auswählen der die höchste zahl hat und die Datei Bild001.jpg daraus kopieren.

Natürlich ginge das auch so:

@echo off
cd C:\Pics\Bilder1
copy Bild001.jpg C:\
cd..
if exist Bilder2 goto Bilder2
:Bilder2
cd Bilder2
xcopy /Y Bild001.jpg C:\
cd..
if exist Bilder3 goto Bilder3
:Bilder3
cd Bilder3
xcopy /Y Bild001.jpg C:\
cd..
if exist Bilder4 goto Bilder4
:Bilder4
cd Bilder4
xcopy /Y Bild001.jpg C:\
...

Aber das ist erstens nicht schön :D und zweitens dauert das bei einer hohen Anzahl an Verzeichnissen auch relativ lange.

Deshalb wollte ich mal fragn ob man direkt prüfen kann, welches verzeichnis die höchste zahl dahinter hat und nur aus dem die datei kopieren.
Vielleicht kann man auch etwas über das Erstellungsdatum machen, denn Bild1 ist das älteste und das mit der höchstesn zahl das neuete, nur habe ich keine Ahnung, wie man die Erstellungsdaten vergleicht.

Ich hoffe ihr könnt mir helfen.

Mfg LimitsUnkn0wn

Content-Key: 75292

Url: https://administrator.de/contentid/75292

Printed on: April 19, 2024 at 19:04 o'clock

Member: Biber
Biber Dec 05, 2007 at 15:46:04 (UTC)
Goto Top
Moin LimitsUnknown,

willkommen im Forum.
Es sind in der Tat verschiedene Lösungsstrategien für Deine Anforderung Erfolg versprechend.
Genauer gesagt (Anzahl BatchschreiberInnen hoch 2)-1.

Ich würde als die einfachste die Ermittlung des "neuesten" Verzeichnisses wählen.
Test am CMD-Prompt
For /f %i in ('dir /ad /o:d /b c:\pics\Bilder*') do @set "newestDir=%i"  

Danach steht in der Variablen %NewestDir% das neueste Verzeichnis. (Anzeigen mit "Set new")

Grüße
Biber
Member: LimitsUnkn0wn
LimitsUnkn0wn Dec 05, 2007 at 16:19:28 (UTC)
Goto Top
Danke, Danke
Funtkioniert super.
Aber falls jemand eine Lösung kennt, wie man die höchste Zahl ermittelt, wäre ich auch noch aus reinem Interesse daran intressiert ;)
Member: Biber
Biber Dec 05, 2007 at 16:33:55 (UTC)
Goto Top
Moin LimitUnkn0wn,

For  /L %i in (1,1,123) do @if exist c:\pics\bilder%i do @set "highestDir=bilder%i"  

Kannst Du noch so einen kleinen grünen Haken setzen bitte?

Grüße
Biber
Member: LimitsUnkn0wn
LimitsUnkn0wn Dec 05, 2007 at 17:12:40 (UTC)
Goto Top
Hab ich gemacht face-wink
Und nochmal Danke