命令行如何将字符串搜索到 %% 变量中



我有一个文本文件,其中包含格式如下的文件名规范,filename-yyyymmdd

来源.txt

IMG-20190601
IMG-20190602
IMG-20190603
...

我想阅读此文件,以便将日期与参考日期进行比较,并根据结果执行一些操作。 IMG总是相同的,只是日期在变化。

为此,我

试图在我正在阅读的每一行中找到文件名日期,以将其与今天进行比较。

我没有成功找到正确的语法,我发现提取子字符串可以通过以下方式完成

set SUBSTRING=%VAR:~POSITION,SIZE% 

但它不适用于%%variable类型。

欢迎任何帮助。

我的代码:

set comparedate=20190702
set /A i=0
for /F "usebackq delims=" %%a in (source.txt) do (
    set /A i+=1
    rem call echo %%i%%
    rem call echo %%a
    set datefile=%%a:~4,8 # the line that is not working
    if %datefile% geq %comparedate%  (goto here) else (goto there)
    :here
    echo do something
    :there
    echo do something else
)

从注释到您的代码中实现了我的建议。还通过直接使用令牌避免了延迟扩展(以及另一种从文件名中获取日期字符串的方法(通过在连字符处拆分((:

@echo off
set comparedate=20190702
set /A i=0
for /F "tokens=1,* delims=-" %%a in (source.txt) do (
    ECHO FileDate=%%b
    ECHO FileName=%%a-%%b [in case you need it]
    if "%%b" geq "%comparedate%"  (
      echo do something
    ) else (
      echo do something else
    )
)

相关内容

  • 没有找到相关文章

最新更新