使用Windows中的部分文件名检查文件是否存在

时间:2017-05-20 03:36:14

标签: batch-file

我是Windows批处理脚本的新手。 在Windows批处理脚本中,我想搜索文件的存在。 文件名将为abcd_date_time_with_sec。

我能够用 abcd_date_time(没有秒)来提供代码。

所以,我想搜索一个文件abcd_date_time *。那就是我想搜索一个包含日期和时间的文件(小时和分钟没有秒)

请帮忙。

1 个答案:

答案 0 :(得分:1)

通配符可能会返回多个结果,for将在ntfs驱动器上按字母顺序返回它们/否则订单未确定。
所以问题是:

  • 你想知道至少有一次出现吗?
  • 匹配数
  • 或返回一个特殊的(最新的/最旧的)

以下批次将

  • 将dir与/ ON(按名称排序)
  • 一起使用
  • pipe to findstr为查找编号
  • 存储查找伪数组File[#]
  • 回显状态和数组(如果填入条目
@Echo off
Set "Search=abcd_*_*"
Set cnt=0
for /f "tokens=1* delims=:" %%A in (
  'dir /B /ON /A-D "%Search%" ^|Findstr /i /n "^" '
) do set "File[%%A]=%%~B"&Set Cnt=%%A
Echo Search "%Search%" got %Cnt% result(s)
For /L %%C in (1,1,%Cnt%) Do Set File[%%C]
Pause

要按创建日期升序,请使用dir /b /OD /TC,降序dir /B /O-D /TC