Es funktioniert für mich auf Vista. Einige Dinge versuchen:
ersetzen find
mit dem vollständig qualifizierten Pfad des Fundes Befehls. find
ist ein allgemeiner Werkzeugname. Es gibt eine Unix-Suche, die sich sehr von der integrierten Windows-Suche unterscheidet. wie folgt:
FOR /f %%a in ('dir ^|%windir%\system32\find.exe /i "myfile.txt"') DO SET fileDate=%%a
untersuchen Sie die Ausgabe des Befehls in einem cmd.exe-Fenster. Um das zu tun, müssen Sie %% durch% ersetzen.
FOR /f %a in ('dir ^|c:\windows\system32\find.exe /i "myfile.txt"') DO SET fileDate=%a
Das kann Ihnen einige Ideen geben.
Wenn das als leer erscheint, dann wieder, an einer Eingabeaufforderung, versuchen Sie dies:
dir | c:\windows\system32\find.exe /i "myfile.txt"
Dies sollte Ihnen zeigen, was Sie sehen müssen.
Wenn Sie es immer noch nicht herausfinden können, bearbeiten Sie Ihren Beitrag, um zu sehen, was Sie von diesen Befehlen sehen, und jemand wird Ihnen helfen.
+1. Das ist eigentlich das Richtige. Parsing der Ausgabe von "dir" ist bestenfalls Wahnsinn. Randnotiz: Verdoppeln Sie in einer Batchdatei die '%' Zeichen. – Joey
Danke, noch eine Frage: Wie bekomme ich nur den Datumsteil. Ist die folgende Syntax zuverlässig genug oder gibt es einen besseren Weg? set FileDate =% FileDate: ~ 0,10% –
Es funktioniert möglicherweise nicht, wenn Sie Ihre internationalen Einstellungen ändern, aber ansonsten sollte es OK sein –