Lê vários arquivos do diretório em um arquivo, nova linha separada

1

Meu script é:

@echo off
setlocal EnableDelayedExpansion
set LF=^


rem ** The two empty lines are necessary
set "content="

for /f "delims=" %%x in ('dir /b /s D:\v\*.*') do (
  set "content=!content!%%x!LF!"
  echo. >>

)
echo(!content!>a.txt
endlocal

Eu li todos os nomes de arquivo do diretório D:\ e gravei-os em a.txt . A saída parece

D:\v\a.csvD:\v\b.txtD:\v\c.xml

Eu preciso que a saída seja

D:\v\a.csv 
D:\v\b.txt 
D:\v\c.xml

Como posso obter uma nova linha após cada nome de arquivo?

    
por user3051956 02.08.2016 / 10:07

1 resposta

0

Como posso obter uma nova linha após cada nome de arquivo?

Escreva-os no for em vez de criar uma linha de saída.

Use o seguinte arquivo de lote (muito simplificado).

test.cmd:

@echo off
for /f "delims=" %%x in ('dir /b /s D:\v\*.*') do (
  echo %%x>>a.txt
)
endlocal

Eu não tenho uma unidade D: então o seguinte teste foi executado na unidade F:

Exemplo de saída:

F:\test>dir f:\v
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of f:\v

03/08/2016  08:40    <DIR>          .
03/08/2016  08:40    <DIR>          ..
02/08/2016  20:43                 0 a.csv
02/08/2016  20:43                 0 b.txt
02/08/2016  20:43                 0 c.xml
               3 File(s)              0 bytes
               2 Dir(s)  1,772,975,259,648 bytes free

F:\test>test

F:\test>type a.txt
F:\v\a.csv
F:\v\b.txt
F:\v\c.xml

F:\test>
    
por 02.08.2016 / 21:47