Discussion:
Batch-Frage IF
(zu alt für eine Antwort)
Christian @Soemtron
2017-04-07 17:50:00 UTC
Permalink
Gerade verzweifle ich an einer Batch-Datei. Es soll herausgefunden
werden, ob eine Datei im Verzeichnis neuer ist als "archiv.zip"

--------------------------------------------------------------
echo off
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
FOR /F "tokens=1-5* delims=.: " %%a IN ('dir archiv.zip ^| find "archiv.zip"') DO (
set lastModified=%%c%%b%%a%%d%%e
)
FOR /F "tokens=1-5* delims=.: " %%a IN ('dir /s /O-D ^| find "17 "') DO (
set DateNew=%%c%%b%%a%%d%%e
if !DateNew! GTR %lastModified% goto Gefunden
)
exit
:Gefunden
echo Neuere Datei vorhanden!
exit
--------------------------------------------------------------

!DateNew! wird jedoch nicht durch den Variableninhalt ersetzt, wie man
durch Weglassen des "echo off" und Einfügen eines "pause" sieht. Es
findet kein Sprung statt.

Wo ist mein Denkfehler?

cu,
Christian

PGP Key available.
Stefan Kanthak
2017-04-07 19:11:47 UTC
Permalink
Post by Christian @Soemtron
Gerade verzweifle ich an einer Batch-Datei. Es soll herausgefunden
werden, ob eine Datei im Verzeichnis neuer ist als "archiv.zip"
[...]
Post by Christian @Soemtron
Wo ist mein Denkfehler?
Im Ansatz!
Du brauchst weder DIR noch FIND.exe noch FOR /F "token=..."

For %%? In (archiv.zip) Do Set LastModified=%%~t?
For /R "." %%? In (*) Do (
Set DateNew=%%~t?
If !DateNew:~6,4! GTR %LastModified:~6,4% Goto :GEFUNDEN
If !DateNew:~3,2! GTR %LastModified:~3,2% Goto :GEFUNDEN
If !DateNew:~0,2! GTR %LastModified:~0,2% Goto :GEFUNDEN
If !DateNew:~11,2! GTR %LastModified:~11,2% Goto :GEFUNDEN
If !DateNew:~14,2! GTR %LastModified:~14,2% Goto :GEFUNDEN
)
Exit /B
:GEFUNDEN
...

Stefan

PS: wenn's auf die Uhrzeit NICHT ankommt:

For %%? In (archiv.zip) Do Set LastModified=%%~t?
Post by Christian @Soemtron
foobar.tmp XCOPY.exe * /D:%LastModified:~3,2%-%LastModified:~0,2%-%LastModified:~6,4% /S /L
Falls foobar.tmp nicht leer ist enthaelt sie die Pfadnamen aller
Dateien, die am angegebenen Tag oder danach modifiziert wurden.
[
--
Die unaufgeforderte Zusendung werbender E-Mails verstoesst gegen §823
Abs. 1 sowie §1004 Abs. 1 BGB und begruendet Anspruch auf Unterlassung.
Beschluss des OLG Bamberg vom 12.05.2005 (AZ: 1 U 143/04)
Christian @Soemtron
2017-04-08 10:37:00 UTC
Permalink
Post by Stefan Kanthak
Du brauchst weder DIR noch FIND.exe noch FOR /F "token=..."
OK, das war unelegant. S.u.
Post by Stefan Kanthak
For %%? In (archiv.zip) Do Set LastModified=%%~t?
For /R "." %%? In (*) Do (
Set DateNew=%%~t?
If !DateNew:~6,4! GTR %LastModified:~6,4% Goto :GEFUNDEN
...
)
Exit /B
:GEFUNDEN
Abgesehen davon daß da kommt:
| "4!" ist syntaktisch an dieser Stelle nicht verarbeitbar.

macht die Befehlsfolge vermutlich nicht das Gewünschte. Bsp.
Archiv-Datum 10.10.2017
Datei-Datum 11.09.2017
würde als Treffer gewertet?! Daher s.u. Nur leider mit dem Anfangs-
Problem. Auch bei Deinem Vorschlag wird das !DateNew! nicht ersetzt, im
Gegensatz zum %LastModified%. Die Shell scheint mit den Ausrufezeichen im
IF nicht zurechtzukommen, denn ein echo !DateNew! funktioniert.
Tut das bei Dir etwa wirklich?

For %%? In (archiv.zip) Do Set aaa=%%~t?
set LastModified=%aaa:~6,4%%aaa:~3,2%%aaa:~0,2%%aaa:~11,2%%aaa:~14,2%
For /R "." %%? In (*) Do (
Set aaa=%%~t?
Set DateNew=!aaa:~6,4!!aaa:~3,2!!aaa:~0,2!!aaa:~11,2!!aaa:~14,2!
If !DateNew! GTR %LastModified% Goto :GEFUNDEN
)
Exit /B
:GEFUNDEN

cu,
Christian

PGP Key available.
Stefan Kanthak
2017-04-08 11:29:39 UTC
Permalink
Post by Christian @Soemtron
Post by Stefan Kanthak
Du brauchst weder DIR noch FIND.exe noch FOR /F "token=..."
OK, das war unelegant. S.u.
Post by Stefan Kanthak
For %%? In (archiv.zip) Do Set LastModified=%%~t?
For /R "." %%? In (*) Do (
Set DateNew=%%~t?
If !DateNew:~6,4! GTR %LastModified:~6,4% Goto :GEFUNDEN
...
)
Exit /B
:GEFUNDEN
| "4!" ist syntaktisch an dieser Stelle nicht verarbeitbar.
AUTSCH! Stimmt.
In IF-Anweisungen kann der Kommandoprozessor das Konstrukt
!<variable>:~<position>,<laenge>!
nicht verarbeiten; bei SET, ECHO sowie stinknormalen Kommandos
dagegen macht er es.

Ich wollte keine lange Zeile mit einer getrennten Zuweisung
foobar=!<variable>:~6,4!!<variable>:~3,2!!<variable>:~0,2!!<variable>:~11,2!!<variable>:~14,2!
schreiben und ohne Zwischenvariable auskommen, daher habe ich 5
einzelne Vergleiche geschrieben und damit zwei Fehler eingebaut.
Post by Christian @Soemtron
macht die Befehlsfolge vermutlich nicht das Gewünschte. Bsp.
Archiv-Datum 10.10.2017
Datei-Datum 11.09.2017
würde als Treffer gewertet?!
Stimmt, s.o.
Post by Christian @Soemtron
Daher s.u. Nur leider mit dem Anfangs-
Problem. Auch bei Deinem Vorschlag wird das !DateNew! nicht ersetzt, im
Gegensatz zum %LastModified%. Die Shell scheint mit den Ausrufezeichen im
IF nicht zurechtzukommen, denn ein echo !DateNew! funktioniert.
Tut das bei Dir etwa wirklich?
Ja.
Ohne das Konstrukt fuer Teilzeichenketten funktioniert die verzoegerte
Auswertung in IF-Anweisungen, getestet sowohl unter XP als auch 7

Stefan
[
--
Die unaufgeforderte Zusendung werbender E-Mails verstoesst gegen §823
Abs. 1 sowie §1004 Abs. 1 BGB und begruendet Anspruch auf Unterlassung.
Beschluss des OLG Bamberg vom 12.05.2005 (AZ: 1 U 143/04)
Christian @Soemtron
2017-04-08 13:07:00 UTC
Permalink
Post by Stefan Kanthak
Ohne das Konstrukt fuer Teilzeichenketten funktioniert die
verzoegerte Auswertung in IF-Anweisungen, getestet sowohl unter XP
als auch 7
Also hier nicht, auch nicht mit der letzten Änderung.
Post by Stefan Kanthak
Post by Christian @Soemtron
If !DateNew! GTR %LastModified% Goto :GEFUNDEN
Die Variablen werden ordnungsgemäß gefüllt, wie ein echo zeigt. Es
erfolgt aber einfach kein Sprung bei neuerem Datum. Auch getestet unter
XP und 7.

cu,
Christian

PGP Key available.
Stefan Kanthak
2017-04-08 14:12:44 UTC
Permalink
Post by Christian @Soemtron
Post by Stefan Kanthak
Ohne das Konstrukt fuer Teilzeichenketten funktioniert die
verzoegerte Auswertung in IF-Anweisungen, getestet sowohl unter XP
als auch 7
Also hier nicht, auch nicht mit der letzten Änderung.
Falsch. Du vermengst hier Zweierlei.
Post by Christian @Soemtron
Post by Stefan Kanthak
Post by Christian @Soemtron
If !DateNew! GTR %LastModified% Goto :GEFUNDEN
Die Variablen werden ordnungsgemäß gefüllt, wie ein echo zeigt.
Siehste!
Darum geht's in meiner obigen Aussage, als Antwort auf Dein

| Auch bei Deinem Vorschlag wird das !DateNew! nicht ersetzt, im
| Gegensatz zum %LastModified%. Die Shell scheint mit den Ausrufezeichen im
| IF nicht zurechtzukommen, denn ein echo !DateNew! funktioniert.
| Tut das bei Dir etwa wirklich?
Post by Christian @Soemtron
Es erfolgt aber einfach kein Sprung bei neuerem Datum. Auch getestet unter
XP und 7.
Das ist ein ANDERES Problem.
Set /A X=0x0123456789ABCDEF
nennt es Dir im Klartext.
Danach wirst Du auch verstehen, wieso ich mehrere Zeilen
IF ... GTR ...
schrob; weniger als 2 geht nicht, Du musst Datum und Uhrzeit getrennt
vergleichen!

Set DateNew=!aaa:~6,4!!aaa:~3,2!!a:~0,2!
If !DateNew! GTR %LastModifiedDate% Goto :GEFUNDEN

Set TimeNew=!aaa:~11,2!!aaa:~14,2!
If !DateNew! EQU %LastModifiedDate% If !TimeNew! GTR %LastModifiedTime% Goto :GEFUNDEN

Stefan
[
--
Die unaufgeforderte Zusendung werbender E-Mails verstoesst gegen §823
Abs. 1 sowie §1004 Abs. 1 BGB und begruendet Anspruch auf Unterlassung.
Beschluss des OLG Bamberg vom 12.05.2005 (AZ: 1 U 143/04)
Christian @Soemtron
2017-04-08 18:31:00 UTC
Permalink
Post by Stefan Kanthak
Das ist ein ANDERES Problem.
schrob; weniger als 2 geht nicht, Du musst Datum und Uhrzeit
getrennt vergleichen!
Geht doch. Du hast mich immerhin in die richtige Richtung geschubst, also
daß die Shell das Datum als Zahl und nicht wie von mir vorausgesetzt, als
String interpretiert.
Mit Anführungszeichen (eigentlich doch Dein Spezialgebiet :-]) geht's wie
gewünscht mit nur einem IF:
If "!DateNew!" GTR "%LastModified%" Goto :GEFUNDEN

Danke für die (wie so oft einzige) Hilfe.

cu,
Christian

PGP Key available.
Stefan Kanthak
2017-04-08 19:38:29 UTC
Permalink
Post by Christian @Soemtron
Post by Stefan Kanthak
Das ist ein ANDERES Problem.
schrob; weniger als 2 geht nicht, Du musst Datum und Uhrzeit
getrennt vergleichen!
Geht doch.
Stimmt.
Das Herauspopeln der Ziffern hat mich die einfachere Loesung nicht
erkennen lassen.
Post by Christian @Soemtron
Du hast mich immerhin in die richtige Richtung geschubst, also
daß die Shell das Datum als Zahl und nicht wie von mir vorausgesetzt, als
String interpretiert.
Mit Anführungszeichen (eigentlich doch Dein Spezialgebiet :-]) geht's wie
If "!DateNew!" GTR "%LastModified%" Goto :GEFUNDEN
Wenn Du jetzt noch auf ein Datumsformat (genauer: eine "Locale") mit
yyyy-mm-dd umstellst wird das Umordnen das Datums und das Entfernen
der Nicht-Ziffern ueberfluessig:

For %%? In (archiv.zip) Do Set LastModified=%%~t?
For /R "." %%? In (*) Do If "%%~t?" GTR "%LastModified%" Goto :GEFUNDEN
Exit /B
:GEFUNDEN
...
Post by Christian @Soemtron
Danke für die (wie so oft einzige) Hilfe.
Passt schon.

JFTR: was auf einem englischem Windows passiert ist Dir bewusst?

Stefan
[
--
Die unaufgeforderte Zusendung werbender E-Mails verstoesst gegen §823
Abs. 1 sowie §1004 Abs. 1 BGB und begruendet Anspruch auf Unterlassung.
Beschluss des OLG Bamberg vom 12.05.2005 (AZ: 1 U 143/04)
Christian @Soemtron
2017-04-08 22:01:00 UTC
Permalink
Post by Stefan Kanthak
Wenn Du jetzt noch auf ein Datumsformat (genauer: eine "Locale")
mit yyyy-mm-dd umstellst wird das Umordnen das Datums und das
Auf die Lösung war ich schon gestoßen aber so weitreichende Eingriffe
Post by Stefan Kanthak
JFTR: was auf einem englischem Windows passiert ist Dir bewusst?
kein Thema ist.

Aus Übermut wollte ich jetzt noch bestimmte Dateierweiterungen von der
Suche ausnehmen und bin auf eine weitere Merkwürdigkeit gestoßen, Bsp:

set extensions=.exe .dll .ms* .cab

For %%? In (archiv.zip) Do Set aaa=%%~t?
set LastModified=%aaa:~6,4%%aaa:~3,2%%aaa:~0,2%%aaa:~11,2%%aaa:~14,2%
For /R "." %%? In (*) Do (
Set aaa=%%~t?
Set DateNew=!aaa:~6,4!!aaa:~3,2!!aaa:~0,2!!aaa:~11,2!!aaa:~14,2!

Set ext=%%~x?
set skip=N
If !DateNew! GTR %LastModified% (
for %%x in (%extensions%) do if %%x==!ext! set skip=Y
if !skip!==N Goto :GEFUNDEN
)
)
Exit /B
:GEFUNDEN

Einträge in der Extensions-Liste mit Wildcard werden einfach ignoriert
und ich erkenne den Grund dafür nicht.
Da werde ich aber wohl erst nächste Woche wieder drangehen...

cu,
Christian

PGP Key available.
Stefan Kanthak
2017-04-09 09:02:54 UTC
Permalink
Post by Christian @Soemtron
Post by Stefan Kanthak
Wenn Du jetzt noch auf ein Datumsformat (genauer: eine "Locale")
mit yyyy-mm-dd umstellst wird das Umordnen das Datums und das
Auf die Lösung war ich schon gestoßen aber so weitreichende Eingriffe
Post by Stefan Kanthak
JFTR: was auf einem englischem Windows passiert ist Dir bewusst?
kein Thema ist.
Aus Übermut wollte ich jetzt noch bestimmte Dateierweiterungen von der
Ebenfalls NORMALES Verhalten: FOR %? IN (...) DO arbeitet auf einer
Liste von Dateinamen(smustern), deren Wildcards dann und nur dann
aufgeloest werden, wenn eine zum Muster passende Datei existiert.
Post by Christian @Soemtron
set extensions=.exe .dll .ms* .cab
for %x in (%extensions%) do @echo %x %~fx

[...]

Stefan
[
--
Die unaufgeforderte Zusendung werbender E-Mails verstoesst gegen §823
Abs. 1 sowie §1004 Abs. 1 BGB und begruendet Anspruch auf Unterlassung.
Beschluss des OLG Bamberg vom 12.05.2005 (AZ: 1 U 143/04)
Christian @Soemtron
2017-04-09 21:40:00 UTC
Permalink
Post by Stefan Kanthak
Post by Christian @Soemtron
set extensions=.exe .dll .ms* .cab
Ebenfalls NORMALES Verhalten: FOR %? IN (...) DO arbeitet auf einer
Liste von Dateinamen(smustern), deren Wildcards dann und nur dann
aufgeloest werden, wenn eine zum Muster passende Datei existiert.
Ah klar, .exe usw. wird als kompletter Dateiname betrachtet und da spielt
die Existenz keine Rolle für das Durchlaufen der Schleife.

Neuer Versuch mit
set extensions=*.exe *.dll *.ms* *.cab
ergibt:
| Die Datei "*.exe" kann nicht gefunden werden.
und FOR wird sofort abgebrochen. Egal, ob da eine foobar.exe ist oder nicht.

Aber der Ansatz war sowieso falsch, weil ich nicht alle Dateien des
Verzeichnisses durchgehen sondern nur eine Datei mit einer Anzahl
Extensions vergleichen wollte. Da diese Anzahl variiert, ist wohl auch
die Tokens-Option nicht so ideal in dem Fall, aber vermutlich die einzige
Möglichkeit?

cu,
Christian

PGP Key available.
Stefan Kanthak
2017-04-10 11:40:29 UTC
Permalink
Post by Christian @Soemtron
Post by Stefan Kanthak
Post by Christian @Soemtron
set extensions=.exe .dll .ms* .cab
Ebenfalls NORMALES Verhalten: FOR %? IN (...) DO arbeitet auf einer
Liste von Dateinamen(smustern), deren Wildcards dann und nur dann
aufgeloest werden, wenn eine zum Muster passende Datei existiert.
Ah klar, .exe usw. wird als kompletter Dateiname betrachtet und da spielt
die Existenz keine Rolle für das Durchlaufen der Schleife.
Neuer Versuch mit
set extensions=*.exe *.dll *.ms* *.cab
| Die Datei "*.exe" kann nicht gefunden werden.
und FOR wird sofort abgebrochen. Egal, ob da eine foobar.exe ist oder nicht.
Dann ist was faul!
For %! In (*.xyz *.abc) Do @Echo %!
MUSS ohne Fehler (und ohne Ausgabe) laufen, wenn weder *.xyz noch *.abc
existieren.
Post by Christian @Soemtron
Aber der Ansatz war sowieso falsch, weil ich nicht alle Dateien des
Verzeichnisses durchgehen sondern nur eine Datei mit einer Anzahl
Extensions vergleichen wollte. Da diese Anzahl variiert, ist wohl auch
die Tokens-Option nicht so ideal in dem Fall, aber vermutlich die einzige
Möglichkeit?
Weder noch.
For %! In ("abc" "xyz" "foobar") Do @Echo %! %~!

Stefan
[
--
Die unaufgeforderte Zusendung werbender E-Mails verstoesst gegen §823
Abs. 1 sowie §1004 Abs. 1 BGB und begruendet Anspruch auf Unterlassung.
Beschluss des OLG Bamberg vom 12.05.2005 (AZ: 1 U 143/04)
Christian @Soemtron
2017-04-10 17:00:00 UTC
Permalink
Post by Stefan Kanthak
MUSS ohne Fehler (und ohne Ausgabe) laufen, wenn weder *.xyz noch
*.abc existieren.
Tut's auch; die Fehlermeldung kam, weil noch das /F drin war...
Das hatte ich IIRC schon probiert, Du auch? Auch da werden Strings mit
einem Stern drin einfach ignoriert. Nächste Idee? :-)

cu,
Christian

PGP Key available.
Claus Reibenstein
2017-04-10 17:08:01 UTC
Permalink
"%!" kannte ich noch nicht. Bis jetzt habe ich hier nur Buchstaben
benutzt. Welche Sonderzeichen sind denn sonst noch möglich?
Post by Christian @Soemtron
Das hatte ich IIRC schon probiert, Du auch? Auch da werden Strings
mit einem Stern drin einfach ignoriert.
Ich hab's probiert: Strings mit einem Stern drin werden _nicht_
ignoriert, sondern durch alle passenden Dateinamen ersetzt. Passt
keiner, ist das Ergebnis eben leer.

Gruß
Claus
Christian @Soemtron
2017-04-11 10:15:00 UTC
Permalink
Post by Claus Reibenstein
Ich hab's probiert: Strings mit einem Stern drin werden _nicht_
ignoriert, sondern durch alle passenden Dateinamen ersetzt. Passt
keiner, ist das Ergebnis eben leer.
Stimmt natürlich, hatte nicht genug getestet.

cu,
Christian

PGP Key available.
Stefan Kanthak
2017-04-10 17:30:20 UTC
Permalink
Post by Christian @Soemtron
Post by Stefan Kanthak
MUSS ohne Fehler (und ohne Ausgabe) laufen, wenn weder *.xyz noch
*.abc existieren.
Tut's auch; die Fehlermeldung kam, weil noch das /F drin war...
Bei /F darf innerhalb der Klammern nur EINE Zeichenkette stehen.
Post by Christian @Soemtron
Das hatte ich IIRC schon probiert, Du auch?
Auch da werden Strings mit einem Stern drin einfach ignoriert.
Flcahs: "*.exe" wird wie *.exe interpretiert.
Rate mal, wieso ich keinen Wildcard schrob?!
Post by Christian @Soemtron
Nächste Idee? :-)
Vergiss Wildcards an dieser Stelle!

Stefan
[
--
Die unaufgeforderte Zusendung werbender E-Mails verstoesst gegen §823
Abs. 1 sowie §1004 Abs. 1 BGB und begruendet Anspruch auf Unterlassung.
Beschluss des OLG Bamberg vom 12.05.2005 (AZ: 1 U 143/04)
Christian @Soemtron
2017-04-11 10:31:00 UTC
Permalink
Post by Stefan Kanthak
Vergiss Wildcards an dieser Stelle!
Ok. Also ist die Absicht mit reinen cmd-Befehlen nicht umsetzbar (die in
der For %? In (*)-Schleife gefundenen Dateien auf Nicht-Übereinstimmung
mit einer Extensions-Liste prüfen, die Wildcards enthält)?

cu,
Christian

PGP Key available.

Christoph Schneegans
2017-04-07 22:43:11 UTC
Permalink
Post by Christian @Soemtron
Gerade verzweifle ich an einer Batch-Datei. Es soll herausgefunden
werden, ob eine Datei im Verzeichnis neuer ist als "archiv.zip"
In PowerShell etwa so:

$d = (Get-Item archiv.zip).LastWriteTime; if ( @(dir | where { $_.LastWriteTime -gt $d }) ) { "Neuere Datei vorhanden!" }

Mein' ja nur.
--
<http://schneegans.de/computer/safer/> · SAFER mit Windows
Thorsten Albrecht
2017-04-08 09:52:17 UTC
Permalink
Post by Christian @Soemtron
Gerade verzweifle ich an einer Batch-Datei. Es soll herausgefunden
werden, ob eine Datei im Verzeichnis neuer ist als "archiv.zip"
Ist schon echt elegant, PowerShell. Ist lange her, dass ich damit mal
ein langes Skript programmiert hatte, aber ich weiß noch, dass ich
danach dachte: nie wieder DOS!

Problem ist nur, dass ich mich heutzutage kaum noch an die Syntax von
PS erinnere... (was heißt nochmal das @ nach dem if?)

Bin gespannt, inwieweit sich diese Sprache auch in Unixkreisen
durchsetzen wird.

Thorsten
Christoph Schneegans
2017-04-10 15:06:58 UTC
Permalink
Post by Thorsten Albrecht
Problem ist nur, dass ich mich heutzutage kaum noch an die Syntax von
@(...) verpackt den eingeschlossenen Ausdruck in eine Liste, so daß man
auch bei einem skalaren Wert etwa die Eigenschaft 'Count' abfragen kann.
Während bspw.

(ps xxxxxx*).Count
(ps wininit).Count

jeweils einen Fehler verursachen, geben

@(ps xxxxxx*).Count
@(ps wininit).Count

0 bzw. 1 zurück.

Ich sehe nun aber, daß dieser Operator gar nicht nötig war. Ebenso hätte

$d = (Get-Item archiv.zip).LastWriteTime;
if ( dir | where { $_.LastWriteTime -gt $d } ) { "Neuere Datei vorhanden!" }

funktioniert.
--
<http://schneegans.de/computer/safer/> · SAFER mit Windows
Thorsten Albrecht
2017-04-10 16:21:54 UTC
Permalink
Post by Christoph Schneegans
Post by Thorsten Albrecht
Problem ist nur, dass ich mich heutzutage kaum noch an die Syntax von
@(...) verpackt den eingeschlossenen Ausdruck in eine Liste, so daß man
auch bei einem skalaren Wert etwa die Eigenschaft 'Count' abfragen kann.
Thx!
Falk Duebbert
2017-04-08 08:29:25 UTC
Permalink
Post by Christian @Soemtron
if !DateNew! GTR %lastModified% goto Gefunden
In meiner Snippetsammlung stehen ifs immer so:

if %DateNew% GTR %lastModified% goto Gefunden

(hier noch mehr spaß mit Daten
http://www.dostips.com/DtTipsDateTime.php)

Falk D.
Thorsten Albrecht
2017-04-08 09:50:04 UTC
Permalink
Post by Falk Duebbert
Post by Christian @Soemtron
if !DateNew! GTR %lastModified% goto Gefunden
if %DateNew% GTR %lastModified% goto Gefunden
Nein, wenn man innerhalb einer Schleife auf Variablen zugreift, die
sich verändern, muss man das mit !variable! machen. Und DateNew
verändert sich ja permanent.

https://ss64.com/nt/delayedexpansion.html

Keine Ahnung, was im Skript vom OP falsch ist; sieht alles ganz gut
aus.

Thorsten
Loading...