windows cmd - retourne les 3 premiers fichiers d'une recherche

1

Chercher à renvoyer les 3 fichiers les plus récemment modifiés d'une extension particulière. La recherche est simple:

C:\> dir /od .zip "C:\Users\foobar\Desktop"

Autres solutions créer des fichiers .txt temporaires ou interroger à l’aide de autres moyens - J'aimerais éviter ces types de solutions.

Si le contenu du répertoire est (les temps représentent "Modifié"):

07/16/2014    12:02 PM   1,000,000 file5.zip
07/16/2014    12:01 PM   1,000,000 file4.zip
07/16/2014    12:00 PM   1,000,000 file3.zip
07/16/2014    11:00 AM   1,000,000 file2.zip
07/16/2014    10:00 AM   1,000,000 file1.zip

Je voudrais voir:

07/16/2014    12:02 PM   1,000,000 file5.zip
07/16/2014    12:01 PM   1,000,000 file4.zip
07/16/2014    12:00 PM   1,000,000 file3.zip
root
la source
FTR: L '"autre moyen" est vraiment l'outil idéal pour Windows 7 et les versions ultérieures. PowerShell apporte une lot de fonctionnalités que CMD n'a tout simplement pas été construit pour. Si votre préoccupation concerne la compatibilité avec les stratégies d'exécution ou les autorisations utilisateur limitées sur différents systèmes, vous pouvez écrire un fichier de commandes auxiliaire pour contourner la plupart de ces problèmes.
Iszi
En outre, il semble que votre capture d'écran représente la sortie de dir /o-d - ne pas dir /od. Est-ce exact?
Iszi
Généralement oui. Cependant, dans mon scénario, certains facteurs contributifs adaptent de manière unique ma recherche à la demande spécifique. Il se peut que la sortie soit l’un ou l’autre, j’ai tapé chaque exemple en mémoire.
root

Réponses:

2

Ceci est utilisable à partir de CMD ou d'un fichier de commandes, et doit répondre à vos besoins sur tout système exécutant Windows 7 ou une version ultérieure:

powershell -command "& {dir *.zip | sort LastWriteTime -Descending | select -First 3}"
Iszi
la source
Je ne savais pas que l'appel powershell de cmd fonctionnerait (et resterait) dans cmd, super appel
root