Je sais que "dir / w" ou "dir / b" n'affiche que le nom du fichier. Tandis que "dir / x" ou "dir / X" montre le format 8.3, mais ensemble montre toutes les autres informations comme les noms de fichiers au format long, les dates et la taille.
est-il possible d'appeler dir
, qui ne montre que les noms de fichiers (ne montrant pas les dates ou les tailles), et montrant cela au format 8.3?
windows
command-line
dir
athos
la source
la source
Si vous voulez juste que les noms 8.3 et rien d'autre soient affichés, si vous utilisez "dir / -n" vous obtiendrez le nom 8.3 au début de chaque ligne. Remarque: il sépare l'extension du nom de fichier avec un espace plutôt qu'un point.
Mais vous pouvez utiliser le "dir / -n" dans une boucle for dans un fichier batch puis extraire une sous-chaîne des 12 premiers caractères pour se débarrasser du reste de chaque ligne. Par exemple:
Le "skip = 7" saute les 7 premières lignes, qui ne sont pas des noms de fichiers ou de répertoires et la sortie du "dir / -n" passe par deux commandes find pour supprimer les deux dernières lignes produites par "dir / -n "(le symbole de canal" | "doit être" échappé "par un" ^ ". Comme l'extraction de la sous-chaîne se produit dans une boucle for dans le fichier de commandes," setlocal EnableDelayedExpansion "est nécessaire et"! "doit être utilisé avec le variable x plutôt que "%". Pour l'exemple ci-dessus, vous verrez alors la sortie suivante lors de l'exécution du fichier de commandes:
la source
abc.txt
pour le voir en action. Ensuite, pour le plaisir, créez un fichier nomméabc.docx
.Après avoir joué avec cela pendant une heure, j'ai trouvé ce qui suit:
à partir de l'invite dos:
à partir d'un fichier .BAT ou .CMD:
Remarque: ce script a toujours un problème avec les noms de fichiers longs, mais il continuera et créera un fichier texte 8dot3 qui peut ensuite être pompé dans n'importe quel autre fichier de commandes.
Ce qui suit est tout mon fichier de test .Bat:
la source
Pour lister les fichiers dans tous les sous-répertoires, essayez celui-ci:
la source