Пакетно, чтобы добавить имя файла к каждой строке и объединить несколько файлов TXT в подкаталогах - PullRequest
0 голосов
/ 05 января 2019

У меня есть несколько * файлов Extract.txt, расположенных в нескольких подпапках, которые я хочу загрузить в общую таблицу на сервере SQL. Я полагаю, что лучший способ начать это объединить данные в один объединенный текстовый файл, а затем загрузить его в базу данных. Объединенный файл должен добавлять имя файла к каждой строке данных. Каждый файл имеет одинаковые заголовки в первой строке, которые могут быть пропущены в объединенном файле, или я могу удалить дубликаты строк в SQL.

Я использовал приведенный ниже код, который работает для файлов * extract.txt, расположенных вместе с командным файлом, но он не перебирает подпапки. Я пробовал / R и другие квалификаторы «For», но вывод пуст.

    @echo off
    setlocal EnableDelayedExpansion</p>

<code>set "file="
(for /f "tokens=1* delims=:" %%a in ('findstr "^" *extract.txt') do (
   if "%%a" neq "!file!" (
      set "file=%%a"
   ) else (
      echo %%~Na:%%b
   )
)) > output.tmp
REM ren output.tmp output.txt
</code>

Я хочу, чтобы вывод был:

имя файла 1 данные данные данные данные ....
имя файла 2 данные данные данные ....
имя файла 3 данные данные данные данные ....

но опять же, код не циклически перебирает текстовые файлы, расположенные в подпапках

1 Ответ

0 голосов
/ 07 января 2019
@echo off
setlocal EnableDelayedExpansion

set "file="
(for /F "tokens=1* delims=:" %%a in ('findstr /s "^" *extract.txt') do (
    if "%%a" neq "!file!" (
      set "file=%%a"
   ) else (
      echo %%~Na:%%b
   )
)) > output.tmp
REM ren output.tmp output.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...