der gerade die letzte geänderte Datei Zeit neueste Datei gesucht von allen * .czi Dateien Nehmen wir an, in Verzeichnis C:\Temp
zum Beispiel enthalten:
30.01.2017 08:13 First Listed.czi
28.01.2017 21:26 Oldest Image.czi
03.02.2017 17:13 Newest Image.czi
Der Code Batch für diese Aufgabe könnte sein:
@echo off
set "Source=C:\Temp\"
set "Target=%Source%List.txt"
for /F "delims=" %%I in ('dir "%Source%*.czi" /A:-D /B /O:-D /T:W 2^>nul') do (
echo File "%%I" last modified on %%~tI>>"%Target%"
goto AfterLoop
)
:AfterLoop
Der Befehl DIR sucht nach * .czi-Dateien im Verzeichnis C:\Temp
und gibt die Liste sortiert nach der letzten Änderungszeit in umgekehrter Reihenfolge von neu nach alt aus.
Im Falle von No * .czi Datei gefunden, wird eine Fehlermeldung ausgegeben DIR-Befehl könnte würde STDERR behandeln. Diese Ausgangsnachricht wird mit 2>nul
zu Gerät NUL umgeleitet, es zu unterdrücken, wodurch der Umleitungsoperator >
muss hier mit ^
entwertet wird als Umleitungsoperator interpretiert wird bei der Ausführung von DIR Befehlszeile und nicht bereits auf FOR Befehlszeilen Parsen .
%%I
verweist auf den Namen der Datei als Ausgabe von DIR und %%~tI
Referenzen Datum der letzten Änderung der Datei. Die Hilfe des Befehls FOR Ausgabe durch Ausführen in einem Eingabeaufforderungsfenster for /?
erklärt diese Modifikatoren.
Die Schleife wird beendet, nachdem die erste Ausgabe des Texts an die Zieldatei umgeleitet wurde, an die die Zeile angehängt wird, falls sie bereits vorhanden ist, weil >>
anstelle von >
verwendet wird.
Für die Beispieldateien Liste der folgende Zeile C:\Temp\List.txt
angefügt:
File "Newest Image.czi" last modified on 03.02.2017 17:13
für die verwendeten Befehle verstehen und wie sie arbeiten, öffnen Sie vollständig alle eine Eingabeaufforderung, führen Sie dort die folgenden Befehle ein, und lesen Hilfeseiten werden für jeden Befehl sehr sorgfältig angezeigt.
dir /?
echo /?
for /?
goto /?
set /?
Siehe auch den Artikel von Microsoft Using command redirection operators.
Definieren Sie, was Sie mit Attributen meinen, vorzugsweise indem Sie diese Informationen an Ihre Frage anhängen. – Compo
auch was sind die "Daten", die Sie an die Zieldatei anhängen möchten? Der Inhalt der * .czi-Datei oder das Attribut 'Zuletzt geändert'? –
Da Sie ein 'dir/o-d' ausführen, sollte Ihr Befehl die allererste modifizierte Datei nach 'target' kopieren, indem Sie jede Datei beginnend mit ** last ** kopieren. Sie müssten '' 'anstelle von' '' verwenden, um die Daten anzuhängen. Die Datei "%% I" ist der gefundene Dateiname, aber das Kopieren würde aus dem * current * -Verzeichnis erfolgen, das nicht "source" sein könnte. Sie sollten "% source %%% I" verwenden, um den Quellverzeichnisnamen einzubeziehen. Ich würde vorschlagen, dass Sie Ihre Frage bearbeiten, um die Angelegenheit zu klären. Möchten Sie "Ziel" einfach durch die letzte Datei ersetzen oder die letzte Datei anhängen, oder ist es die erste Datei? – Magoo