Каждую неделю я получаю 6 или 7 .txt
файлов, как показано ниже:
20/06/18 08:18 1 14 (Sucess, no confirmation needed) 00 0 TEST2 ANOTHERS/ADM 2 0 0 1 164 000000 complete operation 44376390 0 1 CLIENT Windows 48
20/06/18 08:19 1 1 (ok) 00 1 TEST ANOTHERS/ADM 2 0 0 4 167 000000 TRANSACAO APROVED 44376393 0 1 CLIENT Windows 48
20/06/18 08:21 1 2 (ok) 01 0 TEST2 ANOTHERS/ADM 2 0 0 4 000000 complete operation 0 0 48
20/06/18 08:25 1 14 (Sucess, no confirmation needed) 00 0 TEST2 ANOTHERS/ADM 2 0 0 986 5 168 000000 41031930 BEGIN OK 44376394 0 1 CLIENT Windows 48
20/06/18 08:31 1 14 (Sucess, no confirmation needed) 01 0 TEST2 ANOTHERS/ADM 2 0 0 986 6 129 000000 41031931 BEGIN OK 51321421 0 1 CLIENT Windows 48
20/06/18 08:32 1 14 (Sucess, no confirmation needed) 00 0 TEST2 ANOTHERS/ADM 2 0 0 6 169 000000 41031930 BAIXA OK 44376395 0 1 CLIENT Windows 48
20/06/18 08:32 1 14 (Sucess, no confirmation needed) 00 0 TEST2 ANOTHERS/ADM 2 0 0 7 170 000000 41031930 TEST OK 44376396 0 1 CLIENT Windows 48
20/06/18 08:33 1 14 (Sucess, no confirmation needed) 01 0 TEST2 ANOTHERS/ADM 2 0 0 7 130 000000 41031931 BAIXA OK 51321422 0 1 CLIENT Windows 48
20/06/18 08:33 1 14 (Sucess, no confirmation needed) 01 0 TEST2 ANOTHERS/ADM 2 0 0 8 131 000000 41031931 TEST OK 51321423 0 1 CLIENT Windows 48
20/06/18 08:38 1 2 (ok) 00 4 TEST3 ANOTHERS/ADM 2 0 0 11 585945 complete operation 0 0 48
20/06/18 08:38 1 2 (ok) 00 4 TEST3 ANOTHERS/ADM 2 0 0 12 585946 00000001 000000000001064 SITUACAO DA TEST OK 0 0 48
20/06/18 08:39 1 2 (ok) 01 4 TEST3 ANOTHERS/ADM 2 0 0 10 585946 complete operation 0 0 48
20/06/18 08:39 1 2 (ok) 01 4 TEST3 ANOTHERS/ADM 2 0 0 11 585947 00000002 000000000001064 SITUACAO DA TEST OK 0 0 48
20/06/18 09:28 1 1 (ok) 01 0 TEST2 VD DEB 1 2 1 1 FOUND DEBITO 986 11,61 13 134 586242 586242 229873 41031931 0010505962400001 APROVED 229873 12 0 1 CLIENT Windows 48
20/06/18 09:40 1 1 (ok) 01 1 TEST ANOTHERS/ADM 0 0 0 14 135 000000 0 1 CLIENT Windows 48
20/06/18 10:40 1 1 (ok) 01 0 TEST2 VD CRED 3P LOJ 1 1 3 3 FOUND CREDITO 986 154,30 15 136 586244 586244 600109 41031931 0010505962400001 APROVED 600109 19 0 1 CLIENT Windows 48
20/06/18 11:32 1 1 (ok) 01 4 TEST3 VD CRED 6P LOJ 1 1 3 6 FOUND 986 369,80 17 138 585948 00184281 009989 00000002 000000000001064 AUTORIZED 21 0 1 CLIENT Windows 48
20/06/18 11:56 1 1 (ok) 01 1 TEST VD CRED 6P LOJ 1 1 3 6 FOUND 986 103,80 18 139 000761 248937832 071579 DK059325 000000046782664 TRANSACAO APROVED 24 0 1 CLIENT Windows 48
20/06/18 12:24 1 1 (ok) 01 0 TEST2 VD DEB 1 2 1 1 FOUND DEBITO 986 9,90 19 140 586246 586246 295898 41031931 0010505962400001 APROVED 295898 26 0 1 CLIENT Windows 48
20/06/18 13:48 1 1 (ok) 01 4 TEST3 VD CRED 3P LOJ 1 1 3 3 TEST3 986 174,85 23 146 585950 00354147 244207 00000002 000000000001064 AUTORIZED 36 0 1 CLIENT Windows 48
20/06/18 13:50 1 1 (ok) 01 4 TEST3 VD DEB 3P LOJ 1 2 3 3 FOUND 986 90,79 24 147 585951 00356608 356608 00000002 000000000001064 AUTORIZED 37 0 1 CLIENT Windows 48
20/06/18 14:44 1 1 (ok) 01 4 TEST3 VD CRED 2P LOJ 1 1 3 2 FOUND 986 73,70 26 150 585952 00417993 OCP3EF 00000002 000000000001064 AUTORIZED 42 0 1 CLIENT Windows 48
20/06/18 14:55 1 1 (ok) 01 4 TEST3 VD DEB 1 2 1 FOUND 986 30,80 27 151 585953 00432024 432024 00000002 000000000001064 AUTORIZED 44 0 1 CLIENT Windows 48
20/06/18 15:11 1 1 (ok) 01 4 TEST3 VD DEB 1 2 1 FOUND 986 56,80 28 152 585954 00451469 451469 00000002 000000000001064 AUTORIZED 48 0 1 CLIENT Windows 48
20/06/18 15:16 1 1 (ok) 01 4 TEST3 VD CRED 3P LOJ 1 1 3 3 FOUND 986 473,40 29 153 585955 00458420 051473 00000002 000000000001064 AUTORIZED 49 0 1 CLIENT Windows 48
20/06/18 15:21 1 1 (ok) 01 4 TEST3 VD CRED 5P LOJ 1 1 3 5 FOUND 986 89,90 30 154 585956 00464225 210069 00000002 000000000001064 AUTORIZED 52 0 1 CLIENT Windows 48
20/06/18 15:22 1 1 (ok) 01 4 TEST3 VD DEB 2P LOJ 1 2 3 2 FOUND 986 74,79 31 155 585957 00466243 466243 00000002 000000000001064 AUTORIZED 53 0 1 CLIENT Windows 48
20/06/18 15:25 1 1 (ok) 01 4 TEST3 VD CRED 3P LOJ 1 1 3 3 FOUND 986 51,80 32 156 585958 00469765 R62243 00000002 000000000001064 AUTORIZED 54 0 1 CLIENT Windows 48
20/06/18 15:28 1 1 (ok) 01 4 TEST3 VD CRED 2P LOJ 1 1 3 2 FOUND 986 66,80 33 157 585959 00474327 068082 00000002 000000000001064 AUTORIZED 56 0 1 CLIENT Windows 48
20/06/18 16:04 1 1 (ok) 01 4 TEST3 VD CRED 1 1 1 FOUND 986 42,60 34 158 585960 00522515 132114 00000002 000000000001064 AUTORIZED 63 0 1 CLIENT Windows 48
20/06/18 16:19 1 1 (ok) 01 4 TEST3 VD DEB 2P LOJ 1 2 3 2 FOUND 986 54,50 35 159 585961 00543569 543569 00000002 000000000001064 AUTORIZED 64 0 1 CLIENT Windows 48
20/06/18 16:28 1 1 (ok) 01 4 TEST3 VD CRED 1 1 1 FOUND 986 53,60 36 160 585962 00555871 096895 00000002 000000000001064 AUTORIZED 65 0 1 CLIENT Windows 48
20/06/18 16:36 1 1 (ok) 01 4 TEST3 VD CRED 2P LOJ 1 1 3 2 TEST3 986 135,40 37 161 585963 00567178 645238 00000002 000000000001064 AUTORIZED 67 0 1 CLIENT Windows 48
20/06/18 17:09 1 3 (manually confirmed) 01 4 TEST3 VD CRED 2P LOJ 1 1 3 2 TEST3 986 43,69 41 165 585964 00615982 043774 00000002 000000000001064 AUTORIZED 69 0 1 CLIENT Windows 48
20/06/18 17:11 1 1 (ok) 01 4 TEST3 ANOTHERS/ADM 0 0 0 42 166 000000 complete operation 0 1 CLIENT Windows 48
20/06/18 17:47 1 1 (ok) 01 4 TEST3 VD DEB 1 2 0 TEST3 986 48,80 43 167 585965 00682484 164024 00000002 000000000001064 AUTORIZED 73 0 1 CLIENT Windows 48
36 AA295617939D4C16073C5AD86919821D101770A4 221163 0
Все они будут иметь разное количество строк, разность дат, а также разность значений.
Но то, что мне нужно, это просто, мне просто нужен скрипт в .bat
, который находит последнюю строку файла .txt
(36 AA295617939D4C16073C5AD86919821D101770A4 221163 0
) и принимает значение третьего столбца 221163
, а затем преобразует его в долларах США: USD 2.211,63
. Затем возьмите дату первого столбца в приведенной выше строке 20/06/18
и объедините со значением.
Должно быть так: 20/06/18 USD 2.211,63
Хорошо, теперь он будет сохранять как all_files.txt
.
Он должен сделать это со всеми .txt
файлами в папке и сохранить в том же выходном файле. Результат будет похож на это например:
20/06/18 USD 2.211,63
24/06/18 USD 8.289,45
29/06/18 USD 9.211,99
07/07/18 USD 24.653,76
09/07/18 USD 99.701,32
15/08/18 USD 3.291,19
Я делал некоторые попытки следующим образом:
@echo off
setlocal enabledelayedexpansion
for /f "tokens=3" %%i in ('findstr /i %1 c:\test\*.txt ^| findstr /i %2') do (
set last_value=%%i
)
set=!last_value!
for /f %%x in (%date%) do for /f "delims=.txt, tokens=1" %%i in (%%x.txt) do echo %%x, %%i >> all_files.txt
Но все идет не так, как я ожидал. Как я могу сделать это функциональным?
Попробовал сейчас:
SET SearchFile=test.txt
SET TmpSearchFile=output.txt
SET String=%date%
SET LineNum=3
FINDSTR /B /N "%String%" "%SearchFile%" > "%TmpSearchFile%"
FOR /F "USEBACKQ TOKENS=2 DELIMS=: " %A IN (`"FINDSTR /B "%LineNum%:%String%" "%TmpSearchFile%""`) DO ECHO %~A %~A`
Я иду шаг за шагом, но проблема в том, что скрипт не распознает %date%
, как я могу взять текущее слово в этой строке %date%
?
Только что попробовал отсортировать выходной файл по датам.
REM get first line:
<all_files.txt set /p first=
REM write it to a new file:
>"test.txt" echo %first%
REM sort the rest and append to the new file:
<all_files.txt more +1|sort >>"test.txt"
del /f /s /q all_files.txt >nul 2>nul
Я имитировал вставку в один из всех .txt
файлов даты 03/07/18
, и она не сортируется в правильной последовательности.
Это выходной файл:
20/06/18 R$ 2.211,63
22/06/18 R$ 1.761,63
03/07/18 R$ 3.042,21
25/06/18 R$ 1.311,57
21/06/18 R$ 22.842,88
@ Lotpings Просто немного изменил свой последний скрипт, но все равно не сортировал его по дате.
@echo off & setlocal enabledelayedexpansion
mode 34,12
Set "OutFile=all_files.txt"
For %%A in (*.txt) do (
for /f "tokens=1,3" %%T in ('findstr "^" "%%~fA"') do (
set "USD= %%U"
set "LastDate=!ThisDate!"
set "ThisDate=%%T"
)
set "Out=!USD:~0,-5!.!USD:~-5,3!,!USD:~-2,2!"
set "Out=!Out: .=!"
>>"%OutFile%" Echo=!LastDate:~0,2!-!LastDate:~3,2!-20!LastDate:~6,2! USD !OUT:~-10!
)
Смотрите выходной файл:
20-06-2018 USD 2.211,63
22-06-2018 USD 1.761,63
03-07-2018 USD 3.042,21
25-06-2018 USD 1.311,57
21-06-2018 USD 22.842,88
Просто сделал то же самое, что вы мне показали, но для меня не разобрались.