処理されたファイルのログを次の形式で保存するテキストファイルがあります。
名前:kn-25.txt日付:2013年2月1日時間:14:50
タスクは、指定された月(mm)と年(yyyy)のこのファイルから選択を行うバッチファイルをファイル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日付:2013年3月7日時間:14:50
名前:kn-26.txt日付:2013年3月2日時間:23:50
名前:MyFil.txt日付:2012年8月3日時間:12:00
名前:ca-21.txt日付:2013年3月28日時間:01:00
名前:ca-25.txt日付:2012年1月30日時間:10:05
入力: 2013年3月
出力:
名前:kn-26.txt日付:2013年3月2日時間:23:50
名前:kn-25.txt日付:2013年3月7日時間:14:50
名前:ca-21.txt日付:2013年3月28日時間:01:00
わずかに異なるアプローチ(他のアプローチより遅いが、意図したとおりに機能する):
@echo off
setlocal EnableDelayedExpansion
set in_file=t.txt
set month=03
set year=2013
(for /l %%a in (100,1,131) do (
set "day=%%a"
findstr "!day:~-2!.%month%.%year%" %in_file%
))>result.txt
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加