File batch; Elenca i file nella directory, solo i nomi dei file?


120

Questa è probabilmente una domanda molto semplice, ma ho problemi con essa. Fondamentalmente, sto cercando di scrivere un file batch e ne ho bisogno per elencare tutti i file in una determinata directory. Il dircomando lo farà, ma fornisce anche molte altre informazioni; Voglio che elenchi SOLO i nomi dei file ed escluda qualsiasi altra cosa.

Voglio solo che l'output sia simile a questo:

file1.txt
file2.txt
file3.txt

Grazie in anticipo!


Risposte:


236

Il comando completo è:

dir /b /a-d

Lascia che lo spezzi;

Fondamentalmente /bè quello che cerchi.

/a-d escluderà i nomi delle directory.


Per ulteriori informazioni, vedere dir /?per altri argomenti che è possibile utilizzare con il dircomando.


8
Va bene per me :) dir /b /a-d > tmp.txt
Stéphane GRILLON

2
Non funziona anche /Sper ottenere i nomi dei file delle sottodirectory.
Farhan Ghumra

@xyroid hai letto il seltene /a-d will the exclude directory names?
Stephan

4
Non è escluso se voglio stampare i nomi dei file delle sottodirectory.
Farhan Ghumra

Questo era molto vicino a ciò di cui avevo bisogno. Avevo bisogno dei percorsi assoluti e della ricorsione nelle sottodirectory. Ecco cosa ho usato:dir /B /A-D /S
EmpathicSage

34

Puoi anche provare questo:

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

Utilizzando un forciclo, puoi echoestrarre tutti i nomi di file della directory corrente.

Per stamparli direttamente dalla console:

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

7

Se hai bisogno anche delle sottodirectory, hai bisogno di un comando "dir" e di un comando "For"

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

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

del list1.txt

metti la tua directory principale nel comando dir. Creerà un list1.txt con i nomi dei percorsi completi e quindi un list.txt con solo i nomi dei file.


5

1.Aprire il blocco note

2.Crea un nuovo file

3.tipo di linea a soffietto

dir /b > fileslist.txt

4.Salva " list.bat"

Questo è tutto. ora puoi copiare e incollare questo list.batfile " " in qualsiasi posizione della cartella e fare doppio clic su di esso, " fileslist.txt" creerà un file insieme a quella cartella e all'elenco dei nomi dei file.

Output di esempio: inserisci qui la descrizione dell'immagine

Nota: se si desidera creare un elenco di nomi di file insieme alla sottocartella, è possibile creare un file batch con il codice seguente.

dir /b /s > fileslist.txt

2
Cosa succede se non voglio che il file di output "fileslist.txt" sia incluso nell'elenco?
Behnam

4
  • Perché non usare whereinvece dir?

Nella riga di comando:

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

Nel file bat / cmd:

@echo off 

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

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

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

Per ricorsivamente:

where /r . *
  • Produzione:

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
  • Per il ciclo ottieni percorso e nome:

  • Nella riga di comando:
for /f tokens^=* %i in ('where .:*')do @echo/ Path: %~dpi ^| Name: %~nxi
  • Nel file bat / cmd:
@echo off 

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

 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

  • Il ciclo For ottiene il percorso e il nome in modo ricorsivo:

Nella riga di comando:

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

Nel file bat / cmd:

@echo off 

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

 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. open cmd

  2. cambia la directory in cui desideri creare il file di testo (movie_list.txt) per la cartella (d: \ videos \ movies)

  3. digita il seguente comando

    d: \ videos \ movies> dir / b / ad> movie_list.txt


2

creare un file batch con il seguente codice:

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

Quindi trascina e rilascia una directory su di essa ei file all'interno della directory verranno elencati in list.txt


0

dir / s / d / a: -d "percorso cartella *. *"> file.txt

E, perdere il / i se non hai bisogno di file dalle sottocartelle

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.