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
?很好。在没有提供特定属性的情况下,永远不要使用它。