¿Cómo enumero recursivamente nombres de archivo (solo) en DOS / Windows? [duplicar]

20

Posible duplicado:
obtenga nombres de archivos desnudos de forma recursiva en el símbolo del sistema

Me gustaría enumerar recursivamente todos los archivos en un directorio, mostrando solo los nombres de archivo (sin extensiones y sin las rutas completas). Estoy usando Windows / DOS.

Lo más cerca que pude llegar dirfue dir /s /b, pero enumera las rutas completas y también muestra las extensiones.

Bueno, tal vez podría vivir con las extensiones, ¡pero debo deshacerme de los caminos!

¿Algunas ideas?

David B
fuente
1
¿Qué versión de windows?
OldWolf
@OldWolf: XP. Prefiero no usar ningún software de terceros /
David B

Respuestas:

28
cd /d C:\Path\To\Source\Folder
for /r %i in (*) do @echo %~ni

Si necesita guardar la lista en un archivo, agregue >> C:\Path\To\list_file.txtal final del forcomando.

Si termina queriendo las extensiones, cambie %~nia%~nxi

Para utilizar en un archivo por lotes, cambiar todo el %a%%

afrazier
fuente
66
Si necesita ruta, nombre y extensión, cambie% ~ ni a% ~ pnxi
Deep
esto funciona pero no muestra archivos ocultos. ¿Cómo puedo ver también los archivos ocultos?
ala
@ala: Si desea mostrar archivos ocultos, necesitará usar algo como la respuesta de David Remy solo con los indicadores apropiados pasados ​​al dircomando.
Afrazier
7

Si está dispuesto a cargar powershell, este comando debería hacerlo.

get-childitem "d:\acc" -recurse|foreach {$_.Basename}
uSlackr
fuente
5

Hacer algo como lo siguiente debería obtener lo que desea:

@for /f "delims=" %a in ('Dir /s /b %systemdrive%') do echo %~na

Simplemente canalice la salida a un archivo y utilícela desde allí si es necesario.

David Remy
fuente
3

No sé si lo consideraría un software de terceros o no, ya que es de Microsoft y viene con 7, pero powershell resolverá la mayoría de sus problemas con bastante facilidad. Si aún no lo ha instalado, está disponible para XP en el sitio de Microsoft.

Get-ChildItem -path "C:\Program Files\" -recurse | foreach ($_) {
    write $_.name
}
OldWolf
fuente