
Tengo un comando Dir que uso para hacer una lista de texto de un directorio de archivos... "dir /a /b /-p /o:gen > z-file_list.txt"
¿Alguien sabe cómo puedo cambiar esto para que la lista de texto no contenga ninguna extensión? ¿Entonces solo el nombre del archivo?
¡Gracias de antemano!
- EDITAR -
Lo siento, no fui claro. Lo que quiero decir es que su comando guardará un archivo txt con una lista de archivos del contenido del directorio.
El archivo de texto se verá así:
nombre de archivo.ext
nombre de archivo.ext
nombre de archivo.ext
nombre de archivo.ext
Estoy intentando descubrir cómo hacer que el archivo de texto tenga este aspecto.
nombre de archivo
nombre de archivo
nombre de archivo
nombre de archivo
Gracias... lo siento, no estaba claro.
Respuesta1
El dir
comando no tiene un interruptor ni una opción para eliminar extensiones.
Sin embargo , se puede hacer procesando la salida de dir /b
en un for /f
bucle.
(del list.txt 2>nul) & for /f %f in ('dir /a /b /o:gen') do @echo %~nf >>list.txt
Si no le importan los subdirectorios o los archivos del sistema/ocultos (que es para lo que dir /a
sirve), entonces un simple for
también funcionaría.
(del list.txt 2>nul) & for %f in (*) do @echo %~nf >>list.txt
Ejecute dir /?
y para del /?
obtener for /?
más detalles sobre la sintaxis y los modificadores.
Respuesta2
Puedes hacerlo desde el indicador de CMD con un poco de trampa con Powershell. Desde el símbolo del sistema, escriba lo siguiente:
powershell -command "dir |select basename" > file_list.txt
Como dije, esto es un poco engañoso, ya que powershell -command
invoca el shell de Powershell para ejecutar el script de Powershell dir |select basename"
. Para su información, dir
en Powershell es solo un alias para el comando get-childitem
y no tiene nada que ver con el comando del indicador CMD dir
. Powerhsell ejecuta ese script y los resultados se devuelven al indicador CMD y se redirigen ( >
) al archivo de texto.