Batch Alter von Dateien bestimmen

Eremit_

Lt. Junior Grade
Registriert
Okt. 2007
Beiträge
259
Hallo,

ich benötige ein Skript um das Alter von Dateien zu bestimmen.
Hier erst einmal das Skript:

Code:
@echo off

for /R L:\Temp\ %%i in ( "*.jpg" ) do (
   @echo %%~ti
   for /f "delims=. tokens=1" %%a in ("%%~ti") [B]do echo %%a[/B]
   for /f "delims=. tokens=2" %%b in ("%%~ti") do echo %%b
   for /f "delims=. tokens=3" %%c in ("%%~ti") do for /f "tokens=1" %%d in ("%%c") do echo %%d
)

1. Zeile: Alle Dateien inklusive Unterverzeichnisse abfragen
3. Zeile: String zerlegen in den ersten Teil bis zum Punkt. Das ergibt den Tag einer Datei.
Wenn ich nun schreibe ...
Code:
do echo %%a
wird mir der Tag ausgegeben. Schreibe ich hingegen ...
Code:
do set Tag=%%a
funktioniert es nicht bzw ich kann den Wert später nicht mit
Code:
echo %Tag%
ausgeben. Schreibe ich ein paar Zeilen später dann aber
Code:
set Tag
gibt er mir den Tag aus.
Gleiches verhält sich so mit dem Monat und dem Jahr.

Warum nur? Ich möchte das Datum abfragen und in eine Variable speichern.

Ein weiteres kleineres Problem:
ich möchte nicht durch alle Unterverzeichnisse wandern. Ist das möglich? Außerdem verhält sich die Batchdatei auf dem Firmenrechner mit XP anders als bei mir mit Windows 7.
Kann das sein?

Eremit_
 
HELP FOR
in der Eingabeaufforderung eingeben, und dann blätterst du bis zu
Zusätzlich wurde die Ersetzung von Verweisen auf FOR-Variablen erweitert.
Sie können jetzt folgende Syntax verwenden:

Das Datum, welches verwendet wird, kannst du mit
Dir /T festlegen, sieh mit dir /? nach.
 
Hallo,

danke für die schnelle Antwort.

Vielleicht habe ich deine Lösung nicht so recht verstanden aber das Problem ist nicht der "dir-Befehl" sondern warum die Variable %%a nicht mit "set Tag=%%a" gespeichert werden kann.

Gruß

Eremit_
 
Sorry, aber da habe ich deine Frage leider nur überflogen und nicht richtig gelesen.

Wenn du mit @echo on startest, siehst du vielleicht selbst den Fehler.
Zufällig habe habe ich heute Vormittag in einem anderen Forum eine kurze und knappe Erläuterung vom Biber gelesen (heute modifiziert), die ein Problem treffend beschreibt. Von ihm stammt auch eine sehr gute Anleitung zum Umgang mit Datums- und Zeitvariablen im Batch, vielleicht interessiert es dich.

Den Set-Befehl solltest du ständig so verwenden:
Code:
SET "Variablenname=Wert"
also mit den Anführungszeichen so wie angegeben, das reduziert mögliche Fehler.

Hoffentlich ist dieser Tipp hilfreicher als der vorgehende. ;)
 
Zurück
Oben