[英]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.