Добавление TXT-файла из нескольких CSV-файлов в подкаталогах - PullRequest
0 голосов
/ 13 октября 2009

Я пытаюсь написать командный файл, который добавит все файлы * .csv в непосредственных подкаталогах в один текстовый файл в текущем каталоге.

Из разных источников мне удалось собрать воедино этот код, который отлично работает для файлов в текущем каталоге, но не в подкаталогах

for %%a in (*.csv) do (type %%a >> csvreport.txt)

Если бы кто-нибудь мог помочь мне с этим, я был бы чрезвычайно благодарен, поскольку я пробовал различные подходы с подстановочными знаками, но безуспешно.

Ответы [ 3 ]

2 голосов
/ 14 октября 2009

Еще один вариант ...

for /f usebackq %%a in (`dir /s /b *.csv`) do (type %%a >> csvreport.txt)

РЕДАКТИРОВАТЬ: Чтение ваших данных немного больше ... вам нужны только непосредственные каталоги, вы можете сделать это:

for /f usebackq %%a in (`dir /b /ad`) do for %%b in ("%%a"\*.csv) do (type "%%b" >> csvreport.txt)
0 голосов
/ 14 октября 2009
dir /ad /b > dirs.txt
for /f "tokens=1*" %%i in (dirs.txt) do cd %%i & for %%b in (*.csv) do (type %%b >> c:\csvreport.txt) & cd ..

Использование флага / R обходит все деревья подкаталогов. Вы можете вкладывать операторы for для работы только с непосредственными подкаталогами, но не с их подкаталогами.

0 голосов
/ 14 октября 2009
for /R .\ %%a in (*.csv) do (type %%a >> csvreport.txt)

/ R указывает рекурсивный , а последующим параметром является папка для запуска (. \ - текущий каталог).

Вы можете узнать больше, если вы запустите for /?

...