Batch file 批处理文件,按日期提供文件计数
网络文件夹中有数百万个HL7文件。我想知道有多少文件进入了网络文件夹 我想创建批处理文件,这将给我的HL7文件的日期明智的计数 例如 如果无法执行上述操作,则也可以根据文件夹下特定日期创建/修改/访问的文本文件计数 例如 如果我想知道今天创建的文件,它应该给我一些如下输出:Batch file 批处理文件,按日期提供文件计数,batch-file,command-line,command,Batch File,Command Line,Command,网络文件夹中有数百万个HL7文件。我想知道有多少文件进入了网络文件夹 我想创建批处理文件,这将给我的HL7文件的日期明智的计数 例如 如果无法执行上述操作,则也可以根据文件夹下特定日期创建/修改/访问的文本文件计数 例如 如果我想知道今天创建的文件,它应该给我一些如下输出: 2014-01-27: 45458 Files 下面的批处理文件是初步版本;我们将修改它,因为你确认这是你想要的。它假设dir命令中显示的日期字段中的分隔符是破折号;如果不是,只需替换此行中的正确分隔符:set fileD
2014-01-27: 45458 Files
下面的批处理文件是初步版本;我们将修改它,因为你确认这是你想要的。它假设
dir
命令中显示的日期字段中的分隔符是破折号;如果不是,只需替换此行中的正确分隔符:set fileDate=!fileDate:-=\ux代码>(在等号之前)
您可以在参数中插入/T
开关,以选择所需日期的类型;有关详细信息,请参见dir/?
。下面的批处理文件是初步版本;我们将修改它,因为你确认这是你想要的。它假设dir
命令中显示的日期字段中的分隔符是破折号;如果不是,只需替换此行中的正确分隔符:set fileDate=!fileDate:-=\ux代码>(在等号之前)
您可以在参数中插入/T
开关,以选择所需日期的类型;有关详细信息,请参见dir/?
。我不想编辑Aacini的答案来添加此内容,但下面的代码使用了他的算法,可能会更健壮一些
@echo off
setlocal EnableDelayedExpansion
for /F %%a in ('dir %1 /a-d ^|findstr "^[0-9]"') do (
set fileDate=%%a
set fileDate=!fileDate:/=_!
set fileDate=!fileDate:-=_!
set /A Files[!fileDate!]+=1
)
set Files[
pause
我不想编辑Aacini的答案来添加这一点,但下面的代码使用了他的算法,可能会更健壮一些
@echo off
setlocal EnableDelayedExpansion
for /F %%a in ('dir %1 /a-d ^|findstr "^[0-9]"') do (
set fileDate=%%a
set fileDate=!fileDate:/=_!
set fileDate=!fileDate:-=_!
set /A Files[!fileDate!]+=1
)
set Files[
pause
没有Aacini或foxidrive的答案那么快,只是添加了一个选项以系统格式输出日期,并按日期排序输出
@echo off
setlocal enableextensions enabledelayedexpansion
set "count=0"
set "previous="
for /f %%f in ('dir "%~1" /a-d /tc /od ^| findstr /r /c:"^[^ ]"') do (
if "!previous!"=="%%f" ( set /a "count+=1" ) else (
if defined previous echo !previous! : !count!
set "previous=%%f"
set "count=1"
)
)
if defined previous echo !previous! : !count!
没有Aacini或foxidrive的答案那么快,只是添加了一个选项以系统格式输出日期,并按日期排序输出
@echo off
setlocal enableextensions enabledelayedexpansion
set "count=0"
set "previous="
for /f %%f in ('dir "%~1" /a-d /tc /od ^| findstr /r /c:"^[^ ]"') do (
if "!previous!"=="%%f" ( set /a "count+=1" ) else (
if defined previous echo !previous! : !count!
set "previous=%%f"
set "count=1"
)
)
if defined previous echo !previous! : !count!
你能让任务更清楚吗?@foxidrive:编辑了一点问题。同一张海报可能有重复。你能让任务更清楚吗?@foxidrive:编辑了一点问题。同一张海报可能有重复。非常整洁-但你需要添加/a-d
开关,以避免计算方向Saacini:这正是我想要的受通缉的谢谢:)是的,计数中没有目录。非常整洁-但是你需要添加/a-d
开关以避免计数目录。萨奇尼:这正是我想要的。谢谢:)是的,计数中没有目录。