doublon possible:
Obtenir des noms de fichiers nus de manière récursive dans la commande Invite
Je voudrais lister de manière récursive tous les fichiers d'un répertoire, en affichant uniquement les noms de fichiers (sans extensions et sans les chemins d'accès complets). J'utilise Windows/DOS.
Le plus proche que j'ai pu obtenir avec dir
était dir /s /b
, mais il répertorie les chemins d'accès complets et affiche également les extensions.
Eh bien, je pourrais peut-être vivre avec les extensions, mais je dois me débarrasser des chemins!
Des idées?
cd /d C:\Path\To\Source\Folder
for /r %i in (*) do @echo %~ni
Si vous avez besoin de sauvegarder la liste dans un fichier, ajoutez >> C:\Path\To\list_file.txt
à la fin de la commande for
.
Si vous finissez par vouloir les extensions, changez %~ni
en %~nxi
Pour utiliser dans un fichier de commandes, modifiez tous les %
en %%
Si vous êtes prêt à charger Powershell, cette commande devrait le faire.
get-childitem "d:\acc" -recurse|foreach {$_.Basename}
Faire ce qui suit devrait vous donner ce que vous voulez:
@for /f "delims=" %a in ('Dir /s /b %systemdrive%') do echo %~na
Dirigez simplement la sortie vers un fichier et utilisez-la à partir de là si nécessaire.
Je ne sais pas si vous considériez qu’il s’agissait d’un logiciel tiers, car Microsoft et Microsoft sont livrés avec 7, mais powershell résoudra la plupart de vos problèmes assez facilement. Si vous ne l'avez pas déjà installé, il est disponible pour XP sur le site de Microsoft.
Get-ChildItem -path "C:\Program Files\" -recurse | foreach ($_) {
write $_.name
}