La comparaison d'un fichier modifié en date avec la date actuelle dans un fichier de commandes
Je suis obligé d'écrire un fichier de commandes pour faire quelques choses
Au début, je pensais que mon problème était très simple de capture de la date de modification d'un fichier txt situé dans un répertoire spécifié, comparer cette date à la date actuelle, et si elles sont de même faire quelque chose. Si elles ne sont pas alors de faire autre chose.
La ligne que j'utilise pour capturer la date actuelle est:
%date%
Les lignes que j'ai utiliser pour capturer la date de modification de mon fichier spécifié est:
SET filename="C:\New Folder\New.txt"
FOR %%f IN (%filename%) DO SET filedatetime=%%~tf
ECHO %filedatetime:~0,-6% >> %destination%
Dans le cas ci-dessus, je suis tout simplement à l'aide de echo
pour voir ce qui est renvoyé, et il me semble que si la date est retourné, mais je obtenir de l'information supplémentaire:
2012/02/19 02
Je voudrais savoir comment obtenir les valeurs ci-dessus où ils sont comparables, ainsi que comment les comparer correctement.
Vous devez vous connecter pour publier un commentaire.
J'aime dbenham de l' chemin, mais si vous voulez faire de votre code de travail, vous pouvez faire comme ceci:
Pensé qu'il serait intéressant de savoir comment faire votre travail, juste au cas où vous en avez à nouveau besoin.
De travail avec les dates, c'est beaucoup plus difficile dans le lot alors qu'il devrait être.
Il y a une commande qui peuvent rendre votre travail plus facile dans ce cas. FORFILES a la capacité de traiter les fichiers qui ont été modifiés depuis une date donnée. Utilisation
FORFILES /?
à partir de la ligne de commande pour obtenir de la documentation sur son utilisation.Cette simple commande liste tous les fichiers qui ont été modifiés aujourd'hui:
Si au moins un fichier est trouvé, ERRORLEVEL est mis à 0, sinon ERRORLEVEL est mis à 1.
Vous avez un fichier spécifique, vous pouvez utiliser
Il y a une manière plus concise à faire la-dessus. Le
&&
opérateur est utilisé pour exécuter conditionnellement commandes si l'état de la commande a réussi,||
est utilisé pour exécuter conditionnellement commandes si l'état de la commande a échoué. Cependant, soyez prudent, le||
commandes exécutent aussi les si la&&
de commande(s) a échoué.forfiles /m %filename% /d 0 >nul 2>nul ...
/d - nn
correspond à la date de modification. De toute façon possible de correspondre à quelque chose de plus récent que/d - nn
?Outre les questions soulevées dans les commentaires ajoutés à l'article TechNet que les documents ForFiles ForFiles de la Documentation sur le site de Microsoft TechNet, il y a un autre problème qui est mentionné, mais seulement si vous lisez entre les lignes ce qui concerne le temps de la zone ignorée. Depuis ForFiles évalue de la modification de la date indiquée dans l'heure Locale, il permettra de traiter un fichier modifié à 02:01 HNE comme âgées qu'un fichier modifié à 02:59 (HAE).