Archivo por lotes; ¿Lista de archivos en el directorio, solo nombres de archivo?


120

Esta es probablemente una pregunta muy simple, pero tengo problemas con ella. Básicamente, estoy tratando de escribir un archivo por lotes y lo necesito para enumerar todos los archivos en un directorio determinado. El dircomando hará esto, pero también brinda mucha más información; Quiero que incluya SOLAMENTE los nombres de los archivos y excluya cualquier otra cosa.

Solo quiero que la salida se vea así:

file1.txt
file2.txt
file3.txt

¡Gracias por adelantado!


Respuestas:


236

El comando completo es:

dir /b /a-d

Déjame romperlo;

Básicamente /bes lo que buscas.

/a-d excluirá los nombres de directorio.


Para obtener más información, consulte dir /?otros argumentos que puede utilizar con el dircomando.


8
Está bien para mí :) dir /b /a-d > tmp.txt
Stéphane GRILLON

2
Tampoco funciona /Spara obtener nombres de archivo de subdirectorios.
Farhan Ghumra

@xyroid, ¿leíste la seltene /a-d will the exclude directory names?
Stephan

4
No es excluyente si quiero imprimir nombres de archivos de subdirectorios.
Farhan Ghumra

Esto estaba muy cerca de lo que necesitaba. Necesitaba las rutas absolutas y la recursividad en subdirectorios. Esto es lo que utilicé:dir /B /A-D /S
EmpathicSage

34

También puedes probar esto:

for %%a in (*) do echo %%a

Usando un forbucle, puede obtener echotodos los nombres de archivo del directorio actual.

Para imprimirlos directamente desde la consola:

for %a in (*) do @echo %a

7

Si también necesita los subdirectorios, necesita un comando "dir" y un comando "Para"

dir /b /s DIRECTORY\*.* > list1.txt

for /f "tokens=*" %%A in (list1.txt) do echo %%~nxA >> list.txt

del list1.txt

ponga su directorio raíz en el comando dir. Creará un list1.txt con nombres de ruta completos y luego un list.txt con solo los nombres de archivo.


5

1.Abra el bloc de notas

2.Crear un archivo nuevo

3.tipo de línea de abajo

dir /b > fileslist.txt

4.Guardar " list.bat"

Eso es. ahora puede copiar y pegar este " list.bat" archivo en cualquier ubicación de su carpeta y hacer doble clic en él, se creará un " fileslist.txt" junto con esa carpeta de directorio y la lista de nombres de archivo.

Salida de muestra: ingrese la descripción de la imagen aquí

Nota: Si desea crear una lista de nombres de archivo junto con una subcarpeta, puede crear un archivo por lotes con el siguiente código.

dir /b /s > fileslist.txt

2
¿Qué sucede si no quiero que el archivo de salida "fileslist.txt" se incluya en la lista?
Behnam

4
  • ¿Por qué no usar whereen su lugar dir?

En línea de comando:

for /f tokens^=* %i in ('where .:*')do @"%~nxi"

En archivo bat / cmd:

@echo off 

for /f tokens^=* %%i in ('where .:*')do %%~nxi
  • Salida:

file_0003.xlsx
file_0001.txt
file_0002.log
where .:*
  • Salida:

G:\SO_en-EN\Q23228983\file_0003.xlsx
G:\SO_en-EN\Q23228983\file_0001.txt
G:\SO_en-EN\Q23228983\file_0002.log

Para recursivamente:

where /r . *
  • Salida:

G:\SO_en-EN\Q23228983\file_0003.xlsx
G:\SO_en-EN\Q23228983\file_0001.txt
G:\SO_en-EN\Q23228983\file_0002.log
G:\SO_en-EN\Q23228983\Sub_dir_001\file_0004.docx
G:\SO_en-EN\Q23228983\Sub_dir_001\file_0005.csv
G:\SO_en-EN\Q23228983\Sub_dir_001\file_0006.odt
  • Para el bucle, obtenga la ruta y el nombre:

  • En línea de comando:
for /f tokens^=* %i in ('where .:*')do @echo/ Path: %~dpi ^| Name: %~nxi
  • En archivo bat / cmd:
@echo off 

for /f tokens^=* %%i in ('where .:*')do echo/ Path: %%~dpi ^| Name: %%~nxi
  • Salida:

 Path: G:\SO_en-EN\Q23228983\ | Name: file_0003.xlsx
 Path: G:\SO_en-EN\Q23228983\ | Name: file_0001.txt
 Path: G:\SO_en-EN\Q23228983\ | Name: file_0002.log

  • Para el bucle, obtenga la ruta y el nombre de forma recursiva:

En línea de comando:

for /f tokens^=* %i in ('where /r . *')do @echo/ Path: %~dpi ^| Name: %~nxi

En archivo bat / cmd:

@echo off 

for /f tokens^=* %%i in ('where /r . *')do echo/ Path: %%~dpi ^| Name: %%~nxi
  • Salida:

 Path: G:\SO_en-EN\Q23228983\ | Name: file_0003.xlsx
 Path: G:\SO_en-EN\Q23228983\ | Name: file_0001.txt
 Path: G:\SO_en-EN\Q23228983\ | Name: file_0002.log
 Path: G:\SO_en-EN\Q23228983\Sub_dir_001\ | Name: file_0004.docx
 Path: G:\SO_en-EN\Q23228983\Sub_dir_001\ | Name: file_0005.csv
 Path: G:\SO_en-EN\Q23228983\Sub_dir_001\ | Name: file_0006.odt


2

Windows 10:

  1. abrir cmd

  2. cambie el directorio donde desea crear el archivo de texto (movie_list.txt) para la carpeta (d: \ videos \ movies)

  3. escriba el siguiente comando

    d: \ videos \ películas> dir / b / ad> movie_list.txt


2

cree un archivo por lotes con el siguiente código:

dir %1 /b /a-d > list.txt

Luego arrastre y suelte un directorio en él y los archivos dentro del directorio se enumerarán en list.txt


0

dir / s / d / a: -d "ruta de carpeta *. *"> archivo.txt

Y pierda la / s si no necesita archivos de subcarpetas

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.