Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] считывать переменные с txt в батник по дате (http://forum.oszone.net/showthread.php?t=263758)

NibelungXXX 04-07-2013 19:19 2179425

считывать переменные с txt в батник по дате
 
здравствуйте, есть текстовый документ колич.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 04-07-2013 20:27 2179466

Цитата:

Цитата NibelungXXX
просто эти переменные надо в excel внести будет.. »

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

NibelungXXX 04-07-2013 20:33 2179472

Цитата:

Цитата Iska
Почему тогда не делать сие непосредственно из-под Excel? »

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

Sphinx114 04-07-2013 20:43 2179479

За текущий так:
Код:

@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 04-07-2013 20:56 2179490

Цитата:

Цитата NibelungXXX
потому что генерится это партнерами и никак не пришлют excel, шлют только txt »

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

NibelungXXX 04-07-2013 21:09 2179499

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

Цитата:

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

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

Iska 04-07-2013 21:34 2179516

Ну так сюда:
Цитата:

Цитата NibelungXXX
и с помощью vbs подкрепляю в excel »

и добавьте.

NibelungXXX 04-07-2013 21:56 2179527

Цитата:

Цитата Iska
и добавьте. »

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

Sphinx114 04-07-2013 22:20 2179542

Код:

@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 по аналогии.


Время: 05:42.

Время: 05:42.
© OSzone.net 2001-