本帖最后由 yhcfsr 于 2018-6-29 18:39 编辑
回复 7# clk_gameboy
问题所在,是第一步获取的日期,DATEX获取的是当前日期,你的文件全都是过去的日期,怎么可能匹配到文件????????
下面脚本改了下,有详细说明.不过我没有测试,如果有问题,请反馈.- @echo off
- ::脚本可以放在任何地方执行,不一定要和名单或要检索的文件放在一起
- ::=======用户定义区=========================
-
- ::指定要检索的文件日期,格式有多种,以下仅供参考.
- ::如果不指定日期,可以删除下面语句,则获取当前日期
- set "spDate=2018-06-16"
-
- ::指定文件要检索的文件目录
- ::如果不指定,可删除下面语句;此时,BAT脚本要与检索文件放在同一目录
- set "srcDir=d:\test\测试"
-
- ::指定名单路径
- ::如果不指定,可删除下面语句;则名单文件名必须为name_list.txt,且必须与BAT放在一起
- set "namList=d:\test\name_list.txt"
-
- ::==========================================
-
- if not defined spDate set "spDate=%date%"
- if not defined srcDir set "srcDir=%cd%"
- if not defined namLst set "namList=name_list.txt"
-
- for /f %%a in ('datex -d %spDate% -f "yyyymmdd"') do set "_date=%%a"
-
- for /f "delims=" %%a in ('type "%name_list%"') do (
- set "n="
- for /r "%srcDir%" %%b in (*%%a*%_date%* *%_date%*%%a*) do set n=1
- if defined n (
- echox -w 14 -c 0e -n "%%a"
- echox -w 12 -c 0e "【已报/√】"
- set/a yes+=1
- ) else (
- echox -w 14 -c 04 -n "%%a"
- echox -w 12 -c 04 "【未报/×】"
- set/a not+=1
- )
- )
- set/a sum=%yes%+%not%
- echo.&echo 结果统计:
- echo 已上报 %yes%/%sum%
- echo 未上报 %not%/%sum%
- pause
复制代码
|