Существует текстовый файл, в котором хранится журнал обработанных файлов в следующем формате:
Имя: kn-25.txt Дата: 01.02.2013 Время: 14: 50
Задача состоит в том, чтобы записать пакетный файл, который будет делать выбор из этого файла для данного месяца (мм) и года (гггг) в файл result.txt.
@echo off
chcp 1251 >nul
setlocal EnableDelayedExpansion
echo Введіть початковий файл:
set /p in_file=%~nx1
if not exist %in_file% goto end
del D:\result.txt
set /a count=0
set /a con=0
set /a min=101
set /p month=Введіть місяць:
if [%month%] == [] goto end
set /p year=Введіть рік:
if [%year%] == [] goto end
goto start
:start
if count equ 0 (
set /a con=0
) else (
set /a con=0-!count!
)
for /f "tokens=*" %%i in (%in_file%) do (
for /f "tokens=1-6" %%a in ("%%~i") do (
for /f "delims=. tokens=1-3" %%u in ("%%~d") do (
if "%%v"=="%month%" if "%%w"=="%year%" (
set /a con=!con!+1
if "%%u" leq "!min:~-2!" (
set /a min1=!min!-1
if "%%u" neq "!min1:~-2!" (
set /a count=!count!+1
echo !count!. %%i>>D:\result.txt
)
)
)
)
)
)
if %con% neq %count% (
set /a min=!min!+1
goto start
) else (
type D:\result.txt
echo
@pause
endlocal
exit /B
)
:end
echo Ви не ввели параметр!
echo
@pause
endlocal
exit /B
Я написал этот код, но получил ошибку:
Не удается найти имя файла:.
Есть предложения?
Примечание: информация в сгенерированном файле должна быть отсортирована по дате
Пример:
Исходное содержимое файла:
Имя: kn-25.txt Дата: 07.03.2013 Время: 14: 50
Имя: kn-26.txt Дата: 02.03.2013 Время: 23: 50
Имя: MyFil.txt Дата: 03.08.2012 Время: 12: 00
Имя: ca-21.txt Дата: 28.03.2013 Время: 01: 00
Имя: ca-25.txt Дата: 01.30.2012 Время: 10: 05
Ввод: 03.2013
Выход:
Имя: kn-26.txt Дата: 02.03.2013 Время: 23: 50
Имя: kn-25.txt Дата: 07.03.2013 Время: 14: 50
Имя: ca-21.txt Дата: 28.03.2013 Время: 01: 00