LOG ファイル内の文字列を検索するバッチ ファイルを作成しています。文字列には、2 つの静的部分と 2 つの動的部分が含まれます。動的部分は、実行時に入力するものです。バッチ スクリプト自体で静的部分と動的部分を連結し、ファイル内で検索します。
たとえば、静的文字列が「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
私の仮定は、文字列を連結するエラーがあり、引数が「最終文字列」で適切に呼び出されていないことです。
誰でもこれで私を助けてもらえますか?
前もって感謝します!