Batch file 这个批处理文件有什么问题,它可以找到数百个

Batch file 这个批处理文件有什么问题,它可以找到数百个,batch-file,Batch File,为什么当我早上第一件事就是运行它时,我会得到数百个结果 @echo off :: it only shows files on you pc that arrived that day. SETLOCAL EnableDelayedExpansion DIR /b /s /a c:\*.* >todays.txt set count=0 FOR /F "usebackq tokens=* delims=," %%G IN ("todays.txt") DO (call :sub1 "%

为什么当我早上第一件事就是运行它时,我会得到数百个结果

@echo off
:: it only shows files on you pc that arrived that day. 
SETLOCAL EnableDelayedExpansion
DIR  /b /s /a c:\*.* >todays.txt
set count=0
FOR /F "usebackq tokens=* delims=," %%G IN ("todays.txt") DO (call :sub1 "%%G")
echo Todays file count=%count%
pause
 :: end of program
    :sub1
      set dat=%~t1
      SET fdate=%dat:~0,8%
      if "%fdate%"=="%date%" (
      echo.%count%  %1 %dat%
      set /a count=%count%+1
     )
     goto :eof

为什么当我早上第一件事就是运行它时,我会得到数百个结果

既然你只对文件感兴趣,我会将
/a
开关(它什么也不做)更改为
/a-d
,以抑制将报告为“文件”的目录名

@echo off
:: it only shows files on you pc that arrived that day. 
SETLOCAL EnableDelayedExpansion
DIR  /b /s /a c:\*.* >todays.txt
set count=0
FOR /F "usebackq tokens=* delims=," %%G IN ("todays.txt") DO (call :sub1 "%%G")
echo Todays file count=%count%
pause
 :: end of program
    :sub1
      set dat=%~t1
      SET fdate=%dat:~0,8%
      if "%fdate%"=="%date%" (
      echo.%count%  %1 %dat%
      set /a count=%count%+1
     )
     goto :eof

delims
来指定
tokens=*
是没有意义的,因为
tokens=*
无论如何都会复制该行。

我要继续问显而易见的问题:结果错了吗?你想做什么?循环浏览文件?回音文件?删除它们?
DIR/A
不指定属性过滤器不会做任何事情,它实际上是一个不保留任何内容的命令。它匹配文件、目录和重分析点,而不考虑它们的只读、隐藏、系统、索引或准备存档状态。在上述情况下,如您所述,这是不必要的,但一般用户文件查询可能最好使用
DIR/a-D-S-L
@Compo:Ah
/a
?很好。在没有提供特定属性的情况下,永远不要使用它。