【.cmd】 バッチファイルスクリプト %15 【.bat】 (773レス)
前次1-
抽出解除 レス栞

481
(1): デフォルトの名無しさん [sage] 2023/12/11(月) 21:23:41.62 ID:ZQU2Csd1(1) AAS
>>479
479(2): デフォルトの名無しさん [sage] 2023/12/11(月) 17:33:41.74 ID:DuarkpA3(1) AAS
習作でlog1.txtに格納されている文字列を1行ずつlog2.txtの中に存在しているかチェックしたいのですが、

@echo off
for /f %%a in (log1.txt) do (
set line=%%a
find "%%a" log2.txt
if %errorlevel% == "0" (
echo OK >> kekka.txt
) else (
echo NG >> kekka.txt
)
)

findで返ってくる値が0に固定されてしまい、
判定を上手く行うことが出来ずにいます
稚拙な質問でお恥ずかしいのですがどのように修正すれば良いでしょうか
いちばん手っ取り早いのはsetlocal enabledelayedexpansionを使うこと

@echo off
setlocal enabledelayedexpansion
for /f %%a in (log1.txt) do (
find "%%a" log2.txt >nul 2>nul
if "!errorlevel!" == "0" (echo OK) else (echo NG)
)
endlocal

遅延展開で調べてみて
ただforにdelimsとかtokensの指定ないけどそれは問題ない?
504
(1): デフォルトの名無しさん [sage] 2024/02/16(金) 14:00:04.95 ID:xcbCRr3h(1) AAS
>>481
%errorlevel% という環境変数モドキのないdosでも使える
if not errorlevel 1 が正解
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.033s