1

Мой сценарий:

@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

Я читаю все имена файлов из каталога D:\ и записываю их в a.txt . Выход выглядит как

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

Мне нужен вывод, чтобы быть

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

Как я могу получить новую строку после каждого имени файла?

1 ответ1

0

Как я могу получить новую строку после каждого имени файла?

Запишите их в for вместо создания выходной строки.

Используйте следующий (очень упрощенный) пакетный файл.

test.cmd:

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

У меня нет диска D: поэтому следующий тест был выполнен на диске F:

Пример вывода:

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>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .