我正在创建一个批处理文件,它将在 LOG 文件中搜索字符串。该字符串包含两个静态部分和两个动态部分。动态部分是我们在运行时输入的。我在批处理脚本本身中连接静态和动态部分并在文件中搜索它。
例如,如果静态字符串是“hello world |”和“|”
动态字符串是“2013”和“2014”,我的最终字符串就像
finalstring=你好世界| 2013 | 2014
为了消除双引号,我使用了延迟扩展。下面是我的代码:
@echo off
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%a-%%b)
echo %mydate%
setlocal DisableDelayedExpansion
set "str=%~1"
setlocal EnableDelayedExpansion
echo !str!
setlocal DisableDelayedExpansion
set "str2=%~2"
setlocal EnableDelayedExpansion
echo !str2!
setlocal DisableDelayedExpansion
set "string1=hello world | "
set "string1=%~string1"
setlocal EnableDelayedExpansion
echo !string1!
setlocal DisableDelayedExpansion
set "pipesign= | "
set "pipesign=%~pipesign"
setlocal EnableDelayedExpansion
echo !pipesign!
:concat
set "finalstring=%string1%%str%"
set "finalstring2=%finalstring%%pipesign%"
set "finalstring3=%finalstring2%%str2%"
echo %finalstring3%
:concat
findstr %finalstring3% C:\test\log20132502
我的批处理文件的输出如下:
2013-02-25
2013
2014
'2013' is not recognized as an internal or external command,operable program or batchfile
我的假设是连接字符串存在错误,并且在“finalstring”中未正确调用该参数
谁能帮我解决这个问题?
提前致谢!