Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 批处理文件,按日期提供文件计数_Batch File_Command Line_Command - Fatal编程技术网

Batch file 批处理文件,按日期提供文件计数

Batch file 批处理文件,按日期提供文件计数,batch-file,command-line,command,Batch File,Command Line,Command,网络文件夹中有数百万个HL7文件。我想知道有多少文件进入了网络文件夹 我想创建批处理文件,这将给我的HL7文件的日期明智的计数 例如 如果无法执行上述操作,则也可以根据文件夹下特定日期创建/修改/访问的文本文件计数 例如 如果我想知道今天创建的文件,它应该给我一些如下输出: 2014-01-27: 45458 Files 下面的批处理文件是初步版本;我们将修改它,因为你确认这是你想要的。它假设dir命令中显示的日期字段中的分隔符是破折号;如果不是,只需替换此行中的正确分隔符:set fileD

网络文件夹中有数百万个HL7文件。我想知道有多少文件进入了网络文件夹

我想创建批处理文件,这将给我的HL7文件的日期明智的计数

例如

如果无法执行上述操作,则也可以根据文件夹下特定日期创建/修改/访问的文本文件计数

例如

如果我想知道今天创建的文件,它应该给我一些如下输出:

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
开关以避免计数目录。萨奇尼:这正是我想要的。谢谢:)是的,计数中没有目录。