Ordner nach Datum sortiert finden
Hallo,
dank des Forum konnte ich schon meine Dateien per Batch zippen und in einen Ordner packen. Die Ordner haben folgende Struktur JJJJ-MM-TT. Jetzt möchte ich per Batch den Namen des aktuellsten Ordners in eine Variable speichern.
Bsp.:
2011-03-16
2011-03-25
2011-03-27
2011-03-28
Die Batchfunktion soll mir nun 2011-03-28 zurückgeben.
Wie kann man sowas realisieren? Gerne auch Denkanstöße wonach ich suchen könnte, um selber die Lösung zu finden. Ein Dankeschön schon mal im Voraus...
MfG
maddus
dank des Forum konnte ich schon meine Dateien per Batch zippen und in einen Ordner packen. Die Ordner haben folgende Struktur JJJJ-MM-TT. Jetzt möchte ich per Batch den Namen des aktuellsten Ordners in eine Variable speichern.
Bsp.:
2011-03-16
2011-03-25
2011-03-27
2011-03-28
Die Batchfunktion soll mir nun 2011-03-28 zurückgeben.
Wie kann man sowas realisieren? Gerne auch Denkanstöße wonach ich suchen könnte, um selber die Lösung zu finden. Ein Dankeschön schon mal im Voraus...
MfG
maddus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 163569
Url: https://administrator.de/contentid/163569
Ausgedruckt am: 25.11.2024 um 15:11 Uhr
14 Kommentare
Neuester Kommentar
Aloha,
auf die Schnelle würde ich per
(ginge bestimmt auch anders aber das ging mir jetzt am Schnellsten für mich ^.^)
greetz André
edit: Option hinzugefügt (n bevorzugt)
auf die Schnelle würde ich per
dir /b /ad /oOption %Pfad%
eine temporäre Datei erstellen, wo die Ergebniss reingeschrieben werden und per for-Schleife die letzte Zeile auslesen (hab da was rumliegen ;D aber du möchtest ja gerne selbst die Lösung finden => gut so).(ginge bestimmt auch anders aber das ging mir jetzt am Schnellsten für mich ^.^)
greetz André
edit: Option hinzugefügt (n bevorzugt)
@Skyemugen
Bitte keine "temporäre Datei" (und Deinem "
@BigWim
... wobei es die Verwendung des letzten Wertes einfacher macht ...
Grüße
bastla
Bitte keine "temporäre Datei" (und Deinem "
/o
" fehlt das "d
") ... @BigWim
... wobei es die Verwendung des letzten Wertes einfacher macht ...
Grüße
bastla
Aloha bastla!
da fehlt nicht unbedingt das /d, man könnte auch /n nehmen, daher ließ ich es weg :P darf der TE entscheiden.
Keine temp-Datei, ne? Dachte ich mir schon, nur schnell per useback delims txt-Datei auslesen lief bei mir, direkt den letzten Wert aus'm
greetz André
da fehlt nicht unbedingt das /d, man könnte auch /n nehmen, daher ließ ich es weg :P darf der TE entscheiden.
Keine temp-Datei, ne? Dachte ich mir schon, nur schnell per useback delims txt-Datei auslesen lief bei mir, direkt den letzten Wert aus'm
dir
in der for-Schleife auszulesen will mir heute nicht gelingen *grml*greetz André
@bastla
Ich hätte das jetzt in Abhängigkeit der Rückgabewerte von
Grüße
Markus
... wobei es die Verwendung des letzten Wertes einfacher macht ...
Tja, ich konnte mich nicht entscheiden, was sinnvoller ist.- Bei Verwendung des letzten Wertes muß die
For
-Schleife ja durchlaufen. - Bei Verwendung des ersten Wertes benötige ich eine Abbruchbedingung.
Ich hätte das jetzt in Abhängigkeit der Rückgabewerte von
Dir
entschieden ...Grüße
Markus
@BigWim
"
@Skyemugen
Mit den beiden Möglichkeiten hast Du natürlich recht (wobei ich eigentlich auch - aufgrund der vernünftigen Schreibweise JJJJ-MM-TT - zu "
Da die Ordnernamen ja offensichtlich nur aus der Datumsangabe bestehen, brauchst Du weder "delims" nocht "usebackq" (und noch nicht einmal "tokens") - allerdings würde ich (zur Sicherheit) dem %Pfad% noch eine Maske der Art "20??-??-*" mit auf den Weg geben ...
Grüße
bastla
"
for
"-Schleifen lasse ich eigentlich immer bis zum Ende laufen, deswegen finde ich den letzten Wert besser ...@Skyemugen
Mit den beiden Möglichkeiten hast Du natürlich recht (wobei ich eigentlich auch - aufgrund der vernünftigen Schreibweise JJJJ-MM-TT - zu "
n
" raten würde); aber es sah irgendwie "unfertig" aus ... Da die Ordnernamen ja offensichtlich nur aus der Datumsangabe bestehen, brauchst Du weder "delims" nocht "usebackq" (und noch nicht einmal "tokens") - allerdings würde ich (zur Sicherheit) dem %Pfad% noch eine Maske der Art "20??-??-*" mit auf den Weg geben ...
Grüße
bastla
Aloha bastla!
ja, danke, habe ich eben auch gemerkt, dass ich den Vorkäse weglassen kann und es dann natürlich auch so funktioniert mit
Die Maske für den Fall, dass noch andere Ordner enthalten sein könnten? tbh: da ich kein Theater mag, wäre ich mir nicht ganz sicher, wie das Maskieren in diesem Fall geschehen sollte
greetz André
ja, danke, habe ich eben auch gemerkt, dass ich den Vorkäse weglassen kann und es dann natürlich auch so funktioniert mit
dir
in der Schleife.Die Maske für den Fall, dass noch andere Ordner enthalten sein könnten? tbh: da ich kein Theater mag, wäre ich mir nicht ganz sicher, wie das Maskieren in diesem Fall geschehen sollte
greetz André
Hallo Bastla,
Grüße
Markus
"
Dann vertraue ich auf Deine Erfahrungswerte und werde das beherzigen. Die Wahrscheinlichkeit (in diesem Fall) auf >21.900 Ordner zu treffen, ist ja wirklich nicht riesig ....for
"-Schleifen lasse ich eigentlich immer bis zum Ende laufen, deswegen finde ich den letzten Wert besser ...Grüße
Markus
Aloha bastla!
hm, interesting, warum bin ich bisher noch nie über ein solches Maskieren gestoßen ... hm
Aber das
So, der TE hat mich nun mehrfach schon pmed, dass ihn die Lösung interessiert ...
Geben wir ihm noch ein wenig Zeit, die einfache Sache mit unseren Kommentaren selbst zu schaffen schlimm genug, dass wir schon wieder so viel dazu schreiben *lach*
greetz André
hm, interesting, warum bin ich bisher noch nie über ein solches Maskieren gestoßen ... hm
Aber das
/a-d
lassen wir doch lieber bei /ad
sonst find' der nix ^.^So, der TE hat mich nun mehrfach schon pmed, dass ihn die Lösung interessiert ...
Geben wir ihm noch ein wenig Zeit, die einfache Sache mit unseren Kommentaren selbst zu schaffen schlimm genug, dass wir schon wieder so viel dazu schreiben *lach*
greetz André
Aloha maddus!
zwei Sachen:
a) da du nur einmalig die Variable setzt, kannst du auch alles ohne Klammern, in einer Zeile schreiben (was das
b) wie wir angedeutet haben, wäre u.U. die Option
ansonsten, schön gemacht ;)
greetz André
edit: fehlt eigentlich nur noch das grüne Häkchen am Thread und dann hab' ich auch gleich Feierabend *grins*
zwei Sachen:
a) da du nur einmalig die Variable setzt, kannst du auch alles ohne Klammern, in einer Zeile schreiben (was das
do
in der for
-Schleife betrifftb) wie wir angedeutet haben, wäre u.U. die Option
/on
besser, nimm mal an, du erstellst nachträglich einen 2011-02-20-Ordner, dann wäre der dein Ergebnisansonsten, schön gemacht ;)
greetz André
edit: fehlt eigentlich nur noch das grüne Häkchen am Thread und dann hab' ich auch gleich Feierabend *grins*
... und noch ein letztes Detail: Die Variable enthält (da "
oder vorweg mit
in den "Eltern"-Ordner wechseln (und nach der Verarbeitung mit "
Grüße
bastla
dir /b
" ohne "/s
" immer nur Datei-/Ordner-Namen liefert) natürlich keinen Pfad zum entsprechenden Ordner, daher ggf:set variable=D:\Sicherung\%%i
pushd D:\Sicherung
popd
" zurück) ...Grüße
bastla