繁体   English   中英

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

[英]Command line how to search a string into a %% variable

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

source.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
    )
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM