このスクリプトを変更して正確な検索を行う方法を見つけようとしています。文字列を検索する必要があります (例: "123.12" -- 引用符付き)
これは今までの私のスクリプトです:
findstr %1 %systemdrive%\test\data.txt
IF %ERRORLEVEL% GTR 0 (
--- TRUE- DO SOMETHING
) ELSE (
--- FALSE- EXIT
)
これは私のファイルdata.txtです
「123.123」「345.345」「794.922」
(引用符付き)
問題は、findstr が解析された値 123.12 を見つけていることですが、それは私のリストには存在しません。その一部として 123.123 と 123.12 を誤って検出しています。そのため、引用符で検索する方法があるかどうかを知りたいのです。つまり、解析された値をフォーマットし、引用符を追加してテキスト ファイル内を検索する方法があるかどうかを知りたいのです。
"%1" を試しましたが成功しませんでした。
前もって感謝します !!
編集
特定の IP をブロックするようにファイアウォール バッチ スクリプトを変更しようとしています。
これがスクリプトです
ipconfig | findstr "Address" | qut -d: -f 2 | qni > %systemdrive%\Qaas\host_ip.txt
findstr \"%1\" %systemdrive%\Qaas\bin\host_ip.qas || findstr \"%1\" %systemdrive%\Qaas\white_list.txt || findstr \"%1\" %systemdrive%\Qaas\blocqedips.qas
IF %ERRORLEVEL% GTR 0 (
echo "NOT FOUND"
netsh ipsec stat add filter filterlist="IP List" srcaddr=%1 dstaddr=Me description=%1 protocol=any mirrored=yes
echo Blocked IP address %1, reason - %2 connections on %3 >> %systemdrive%\Qaas\Qaas-%dw%-%mm%-%dd%-%hh%.log
echo %1 >> %systemdrive%\Qaas\blocqedips.qas
) ELSE (
echo "FOUND"
echo %1 is either host IP or already blocked earlier >> %systemdrive%\Qaas\Qaas-%dw%-%mm%-%dd%-%hh%.log
)
これはブロックされた IP ファイルです: http://pastebin.com/cP4BteDM
今、たとえば 10.02.0 をブロックしようとすると、コンソールに "10.02.02" が表示されます。10.02.0が「instr」「10.02.02」だからだと思います。FINDSTR 文のこの問題により、たとえば「10.02.0」を禁止することはできなくなります。
助けてくれてありがとう、私はあなたの答えを試してみましたが運が悪かったです:S