Liste de répertoires triée par taille, mais avec opt *. * En haut

1

Je souhaite lister par ordre de taille inversée les fichiers d'un certain répertoire.

C'est facile: utilisez dir /o-s/b >dir.lis.

Cependant, je souhaite que les fichiers nommés opt *. * Apparaissent toujours en haut, quelle que soit leur taille.

Je ne sais pas comment faire ça. Je pourrais faire ceci est deux étapes, telles que dir /o-s opt*.* >dir.lis et émettre une deuxième commande pour énumérer le reste.

Mais comment puis-je exclure opt *. * De la deuxième liste?

dacfer
la source

Réponses:

1

Comment puis-je exclure opt*.*de la deuxième liste?

Vous pouvez utiliser findstr pour y parvenir:

dir /b /o-s *.* | findstr /bivr /c:"opt*.*"

Où:

  • /b Correspond au motif si au début d'une ligne.

  • /i Recherche insensible à la casse

  • /v Imprimer uniquement les lignes qui ne contiennent pas de correspondance

  • /r Utiliser une chaîne comme expression régulière

  • /c"string" Utiliser une chaîne comme chaîne de recherche littérale (peut inclure des espaces)

Donc, assembler les deux commandes suivantes fera ce que vous voulez ( opt*.*listez d’abord les fichiers)

rem get opt*.* files
dir /b /o-s opt*.* > dir.lis
rem get the rest of the files excluding opt*.*
dir /b /o-s *.* | findstr /bivr /c:"opt*.*" >> dir.lis

Lectures complémentaires

DavidPostill
la source
Merci. Il supprime tous les fichiers opt *. *, Mais également tous les fichiers en boucle *. *. Pourquoi est-ce que ça les enlèverait aussi?
vendredi
J'ai mis à jour la réponse pour verrouiller l'expression rationnelle au début de la ligne (en utilisant l' findstroption /b), ce qui corrige ce problème.
DavidPostill
Intriguée de savoir pourquoi le premier ne fonctionnait pas. Comment a-t-il correspondu à la boucle pour opter *?
transfert le
@dacfer Aucune idée sans voir une liste de tous vos noms de fichiers opt et loop.
DavidPostill
D: \> type xx optim02.log optim02a.log optim01.log loop_df.log loop_gr.log loop_dr.log loop_hb.log loop_fb.log loop_bb.log D: \> findstr / ivr /c:"opt*.* "< xx D: \>
dacfer