我正在寻找特定文件夹中的T(当前日期/今天日期)日期文件。 C:\用户\ ABC \桌面\ CBS \ OUTBOX
还会有T -1,T -2 ......文件。
并且会有以日期(NP和PN)开头的T日期文件,后面跟PN27022014
和NP27022014
之类的日期。
还有另一个条件,两个文件都将以5个不同的扩展名结尾,如
PN27022014.TRN
PN27022014.BAL
PN27022014.NEG
PN27022014.NBL
PN27022014.EFG
NP27022014.TRN
NP27022014.BAL
NP27022014.NEG
NP27022014.NBL
NP27022014.EFG
我有查询检查带有单个前缀的文件并以单个扩展名结尾。
@echo off
SetLocal enabledelayedexpansion
for /f "tokens=2-4 delims=/ " %%a in ('date /T') do set year=%%c
for /f "tokens=2-4 delims=/ " %%a in ('date /T') do set month=%%a
for /f "tokens=2-4 delims=/ " %%a in ('date /T') do set day=%%b
set TODAY=%day%%month%%year%
echo %TODAY%
for /F "tokens=1" %%a IN ('Dir "C:\Users\abc\Desktop\CBS\OUTBOX\PN*%TODAY%*.TRN" /-C/S/A:-D
2^>nul') Do Set y=!n2! & Set n2=%%a
echo out %y%
If %y% gtr 1 ( echo 4 ) else ( echo 3 )
如何使用不同的扩展名来获取前缀。
如果存在包含每个前缀且每个扩展名大于1的文件,则查询应该给出输出4。
答案 0 :(得分:1)
这将检测与今天日期文件规范匹配的文件数,并告诉您是否找到10个文件。
日期例程需要XP Pro及更高版本。
@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
set "datestamp=%DD%%MM%%YYYY%"
for /f "delims=" %%a in (' dir /b /a-d "C:\Users\abc\Desktop\CBS\OUTBOX\??%datestamp%.*" ^|find /c /v "" ') do (
if %%a EQU 10 (echo 10 files are present) else (echo incorrect number of files)
)