CMD/BAT - [решено] считывать переменные с txt в батник по дате

Ответить
Аватара пользователя
NibelungXXX

CMD/BAT - [решено] считывать переменные с txt в батник по дате

Сообщение NibelungXXX »

здравствуйте, есть текстовый документ колич.txt

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



Код:

Код: Выделить всё

за  05.21   R1 - 10
за  05.21   R2 - 4302
за  05.21   R3 - 1
за  05.21   R4 - 16
за  05.22   R1 - 0
за  05.22   R2 - 3073
за  05.22   R3 - 3
за  05.22   R4 - 4
и т.д

Есть сегодняшняя дата, как сделать чтобы батник с txt файла считывал дату(сегодняшнюю), название и обьем и вносил в переменные.. просто эти переменные надо в excel внести будет..



и как сделать чтобы: есть сегодняшняя дата, вчерашняя и позавчерашняя..Нода чтобы батник внес в переменные 3 этих дня которые указаны в промежутке
Аватара пользователя
Iska

Re: CMD/BAT - [решено] считывать переменные с txt в батник по дате

Сообщение Iska »

Цитата NibelungXXX:



просто эти переменные надо в excel внести будет..
CMD/BAT - [решено] считывать переменные с txt в батник по дате




Почему тогда не делать сие непосредственно из-под Excel?
Аватара пользователя
NibelungXXX

Re: CMD/BAT - [решено] считывать переменные с txt в батник по дате

Сообщение NibelungXXX »

Цитата Iska:



Почему тогда не делать сие непосредственно из-под Excel?
CMD/BAT - [решено] считывать переменные с txt в батник по дате




потому что генерится это партнерами и никак не пришлют excel, шлют только txt
Аватара пользователя
Sphinx114

Re: CMD/BAT - [решено] считывать переменные с txt в батник по дате

Сообщение Sphinx114 »

За текущий так:



Код:

Код: Выделить всё

@echo off
for /f "tokens=3,5" %%i in ('findstr %date:~3,2%.%date:~0,2% колич.txt') do (
set /a count+=1
call set x%%count%%=%%i
call set y%%count%%=%%j
)
set | findstr /r /c:"^x" /c:"^y"
pause
Аватара пользователя
Iska

Re: CMD/BAT - [решено] считывать переменные с txt в батник по дате

Сообщение Iska »

Цитата NibelungXXX:



потому что генерится это партнерами и никак не пришлют excel, шлют только txt
CMD/BAT - [решено] считывать переменные с txt в батник по дате




А причём тут партнёры? Я говорю: Вы собираетесь извлечённую информацию добавлять в рабочую книгу Excel — так и делайте это сразу из-под Excel.
Аватара пользователя
NibelungXXX

Re: CMD/BAT - [решено] считывать переменные с txt в батник по дате

Сообщение NibelungXXX »

Sphinx114 спасибо, за текущую дату вытаскивает, и с помощью vbs подкрепляю в excel, но как быть если были выходные и в понедельник надо за пятницу, суботту и воскресенье чтоб вытаскивал..Дата понедельника и дата пятницы известны




Цитата Iska:



А причём тут партнёры? Я говорю: Вы собираетесь извлечённую информацию добавлять в рабочую книгу Excel — так и делайте это сразу из-под Excel.
CMD/BAT - [решено] считывать переменные с txt в батник по дате




мне надо чтоб автоматически это делалось через батник, до этого excel программа уже выполняет операций 20 разных
Аватара пользователя
NibelungXXX

Re: CMD/BAT - [решено] считывать переменные с txt в батник по дате

Сообщение NibelungXXX »

Цитата Iska:



и добавьте.
CMD/BAT - [решено] считывать переменные с txt в батник по дате




там просто переменную вытаскиваешь, потом ей добовляешь в определенную позицию, а как по другому можно?
Аватара пользователя
Sphinx114

Re: CMD/BAT - [решено] считывать переменные с txt в батник по дате

Сообщение Sphinx114 »

Код:

Код: Выделить всё

@echo off
::set date=04.07.2013
call :z -0 %date% a b
call :z -1 %date% c d
call :z -2 %date% e f
set | findstr /r /c:"^[abcdef]"
pause
exit
:z
SetLocal
Set DT=%2
Set yyyy=%DT:~-4%& set /a mm=100%DT:~3,2%%%100& set /a dd=100%DT:~,2%%%100
Set /A JD=%~1+dd-32075+1461*(yyyy+4800+(mm-14)/12)/4+367*(mm-2-(mm-14)/12*12)/12-3*((yyyy+4900+(mm-14)/12)/100)/4
Set /A L=JD+68569,N=4*L/146097,L=L-(146097*N+3)/4,I=4000*(L+1)/1461001
Set /A L=L-1461*I/4+31,J=80*L/2447,K=L-2447*J/80,L=J/11
Set /A J=J+2-12*L,I=100*(N-49)+I+L
Set /A yyyy=I,mm=100+J,dd=100+K
EndLocal& Set mm.dd=%mm:~-2%.%dd:~-2%
for /f "tokens=3,5" %%i in ('findstr %mm.dd% колич.txt') do (
set /a count+=1
call set %3%%count%%=%%i
call set %4%%count%%=%%j
)
set "count="

Где set date можно раскомментировать и переопределить текущую дату. Если надо более чем за 3 дня, то добавляете строки с call :z по аналогии.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»