Fichier batch DOS pour rechercher de «nouveaux» fichiers par date

8

Mon PC est entré dans une boucle BSOD infinie - mais j'ai accès à une invite de commande en mode sans échec.

J'essaie de me faire une idée de «ce qui a changé» qui aurait pu déclencher cela. par exemple, j'ai peut-être attrapé un virus, ou une mise à jour de l'application s'est effondrée.

Je voudrais ainsi voir quels fichiers ont été créés / modifiés au cours des derniers jours / semaines ou au moins les fichiers * .exe, * .dll, * .com, * .bat etc.

Je pensais que j'étais d'accord avec mon Batch-fu mais je suis perplexe sur la façon d'écrire un fichier / commande de lot rapide qui répertorierait les fichiers pour moi.

REM This will find the files, but the results are all muddled
REM all EXE files, reverse sort by date, recursively through sub-directories

dir *.exe /O-D /S

Ce que j'aimerais vraiment, c'est trouver tous (types de fichiers exécutables) qui ont été créés / modifiés au cours des 3-7 derniers jours.

Est-ce que quelqu'un peut-il me montrer la bonne direction?

Todd McArthur
la source
Totalement séparé de la commande à exécuter, il semble qu'il y ait un paramètre corrompu pour quelqu'un, pas un exécutable supplémentaire (ce que trouverait votre script).
soandos
@soandos - tout à fait possible, je vais deviner que quelque chose que j'ai installé ou mis à jour ... est ce qui a déclenché le changement de paramètre. Quoi qu'il en soit, je pense qu'un fichier de commandes rapide pour le scénario ci-dessus serait toujours un outil très pratique.
Todd McArthur
@Todd, avez-vous essayé de démarrer à partir de la dernière bonne configuration connue? windows.microsoft.com/en-US/windows7/… (le même concept s'applique à WinXP / 2003)
Robert Kerr
Pourquoi n'analysez-vous pas le vidage de mémoire du BSOD?
ZippyV
@ZippyV - Je suppose que je pourrais mais je ne sais pas comment faire ça.
Todd McArthur

Réponses:

10

c'est une manière simple, quoique détournée, d'utiliser xcopy. vous pouvez regarder xcopy /?pour voir les commutateurs, etc.

xcopy \windows\*.exe /L /S /D:12-01-2000 .

Cette commande produira une liste de .EXEfichiers et de chemins dans le \windowsdossier de manière récursive, qui ont été modifiés le ou après le 12/1/2000, sans les copier réellement. REMARQUE il y a un point à la fin de la commande. C'est difficile à voir avec une petite police.

Edit 1: J'ai retiré la /Fde la commande d'origine, car elle était superflue.

Edit 2: vous pouvez diriger la sortie vers " | more" si vous le souhaitez

Keltari
la source
2
juste avant de sauter sur ce ... quelle partie est la partie qui dit "ne pas copier réellement"? ... est-ce .par exemple la copie dans la position d'origine des fichiers?
Todd McArthur
2
/ L juste des listes, pas des copies
Keltari
@Todd McArthur do xcopy /? man
barlop
1
xcopy est un excellent outil, encore sous-utilisé, dans Windows. xxcopy, un programme tiers est encore mieux. xxcopy.com/xcpymain.htm
Keltari
1
Élégant. Merci. J'ai canalisé les résultats dans un fichier avec > results.txt. Remarque: si vous exécutez la commande dans le dossier d'où vous xcopyvenez, vous devrez remplacer le dernier .par une cible factice ou vous recevrez un avertissement concernant la copie cyclique.
CAD bloke du