Вставить строку в фиксированной позиции в текстовом файле - PullRequest
0 голосов
/ 11 июня 2018

Мне нужно вставить 4 строки в текстовый файл в фиксированной позиции:

  • первая строка: произведение, в начале строки, столбец 1
  • вторая: %% b, столбец 20
  • третий: %% c, столбец 33
  • четвертый: не существует, столбец 42.

Я всегдахотите, чтобы строки были записаны в одной и той же позиции, независимо от того, насколько длинны другие строки раньше.поэтому он должен выглядеть следующим образом:

the product   ergerzgtrg                  65ggrth784rjhnjgbkljn   doesn't exist  
the product   reggbrtbhtrergzthrjhlyoiul  rtjntjrez               doesn't exist
the product   zef                         rt                      doesn't exist

Вот мой код:

FOR /F "delims=; tokens=1-7*" %%a in (mytextfile.txt) do (
    if "%%e"=="Unkown" (
        echo the product         %%b          %%c          doesn't exist>>Unkown_product.txt
    )
)

mytextfile.txt выглядит так:

K5134908-Blabla_4;K5134908;Blabla_4;01-69423;Unkown;K5134908-Blabla_4-516245;K5134908-Blabla_4-516245;
K2602207-Blabla_2;K2602207;Blabla_2;01-81111;Unkown;K2602207-Blabla_2-516245;K2602207-Blabla_2-516245;
K2602006-Blabla_3;K2602006;Blabla_3;01-82789;Unkown;K2602006-Blabla_3-516245;K2602006-Blabla_3-516245;
K2601507-Blabla_4;K2601507;Blabla_4;01-75135;Unkown;K2601507-Blabla_4-516245;K2601507-Blabla_4-516245;

Есть лиспособ сделать это в пакетном файле (.bat)?

1 Ответ

0 голосов
/ 11 июня 2018

Добавьте достаточно пробелов к значениям (20 в моем примере), затем обрежьте первые [все, что вам нужно] символов (15 в моем примере):

@echo off
setlocal

FOR /F "delims=; tokens=1-7*" %%a in (mytextfile.txt) do (
    if "%%e"=="Unkown" call :format "%%b" "%%c"
)
goto :eof

:format
set "b=%~1                    "
set "c=%~2                    "
set "b=%b:~0,15%"
set "c=%c:~0,15%"
echo the product %b% %c% doesn't exist>>Unkown_product.txt

Примечание: строка поиска равна "Unkown" согласно вашему файлу (вероятно, опечатка, я думаю, это должно быть "Unknown")

...