私はバッチスクリプトを初めて使用します。テキストファイル(a.txt)に1、2、3などの番号(行番号ではない)を一致させる方法を知りたいです。
他の番号が一致する場合は警告が表示され、探している番号と一致する場合は成功が表示されます。
アドバイスや助けはありますか?私はfindstrとif条件を試しましたが、私が初心者だと言ったようにうまくいきませんでしたので、助けてください
ありがとうハリ
私はバッチスクリプトを初めて使用します。テキストファイル(a.txt)に1、2、3などの番号(行番号ではない)を一致させる方法を知りたいです。
他の番号が一致する場合は警告が表示され、探している番号と一致する場合は成功が表示されます。
アドバイスや助けはありますか?私はfindstrとif条件を試しましたが、私が初心者だと言ったようにうまくいきませんでしたので、助けてください
ありがとうハリ
ここで何を言おうとしているのかよくわかりませんが、著者が見つけようとしているのは次のことだと思います。
Echo
ます名前 ?setlocal enabledelayedexpansion
setlocal enableextensions
set file=Ok
set target=a.txt
for /f "delims=, tokens=1-3" %%a in (%target%) do (
call :Check %%a %%b %%c
)
:Check
if exist %1 (
if %1 neq 1 if %1 neq 2 if %1 neq 3 (set file=Alert
) else (shift /1)
goto :Check
) else (goto :report)
goto :eof
:report
if %file% equ Alert echo %target% does not match
if %file% equ Ok (
echo %target% is fine
Rem ! ! ! Add what you want to do to file here
)
OK、これはファイルに 1 行しかない場合にのみ機能します。それが機能するかどうかわからないため、微調整が必要になる場合があります(機能しない場合は教えてください)。ほとんど、それが言うところではtokens=1-3
、それはシリーズの長さです. call :Check %%a %%b %%c
それぞれを実装することなので、シリーズに4つある場合、これらは になりtokens=1-4
ますcall :Check %%a %%b %%c %%d
。
:check
手順の最後にif %1 neq 1 if %1 neq 2 if %1 neq 3
、シリーズを構成する番号が含まれています(順序はチェックされないことに注意してください)。したがって、ed に 4 を含めたい場合は、 になりますif %1 neq 1 if %1 neq 2 if %1 neq 3 if %1 neq 4
。
繰り返しますが、私はそれをテストしていないので、これがうまくいくかどうかはわかりません. その概念が間違っている場合 (そうではないと確信しています)、教えてください。この回答を削除します。