-4

みなさん、こんにちは。1800以上のラインコードバッチファイルを書き終えたところです...それは、Webサイトをブロックし、ブロックを解除します。これで、Webサイトにアクセスしてブロックできる機能と、大量のWebサイト全体をブロックできる機能が追加されました。これで、Webサイト名を入力すると、ブロックが解除されるか、ファイルに削除することですべてのブロックを解除できます。今、新しい機能があります...リダイレクト、私はあなたたちと一緒にそれをうまく可能にしました:)。これで、Webサイトを別のWebサイトにリダイレクトするか、「接続できないページ」にリダイレクトするかの2つのオプションがあります。はい、そういうわけで、Webサイトにpingを実行するときにIPアドレスを抽出する方法について質問しました。その後、私のプログラムはIPアドレスを変数に格納します。したがって、たとえばwww.facebook.comにWebサイトを入力すると、Webサイトにpingが送信され、IPアドレスが取得され、変数に保存されます。ただし、これは、ブロックを解除するためにWebサイトにアクセスするときに問題になります。したがって、findstrコマンドを使用して、ブロックされたWebサイトを探して削除しますが、これはマルチユニバースのハザールです。Webサイトのブロックを解除し、IPアドレスをリダイレクトする必要があります。

173.252.110.27 www.facebook.com www.google.co.za 
173.252.110.27 www.facebook.com www.youtube.com 

「接続できないページ」(ローカルホスト)にリダイレクトすると、次のようになります...

127.0.0.1 www.miniclip.com.

これが私の問題です。CMDは、ブロックされたWebサイトと、WebサイトをリダイレクトするWebサイトを認識していません。だから私は小さなコードで私を助けてくれる人が必要ですそしてはいこれが終わったら私はあなたにリンクを与えることを約束しますあなたが私がたくさんのブレインストーミングと思考をしなければならなかったので私が作るのに約173時間かかったこのプログラムをダウンロードできるようにします頭のてっぺんからコードを入力するだけではありません。今ここに私が立ち往生しているコードがあります...

if %directstate% == uilocalhost (
findstr /i %IPaddress% %%A >>%hosts% 
)

if %directstate% == uiwebsite (
findstr /i %IPaddress% %directmode% %%A >>%hosts%
)

directstate varibleは、Webサイトまたはローカルホストにリダイレクトするオプションである変数です。

また、directstate変数がWebサイトに設定されている場合、Ipaddress変数は抽出されたping IPアドレスに設定され、directstateがlocalhostに設定されている場合、IPアドレスは127.0.0.1に設定され、hosts変数はhostsファイルのディレクトリです。設定。

これがウェブサイトのブロックを解除するためのコード全体です...

::Uninstall Selected Bocked Website START
:unblockselectedloadmenu
echo [%time%] [UNBLOCK SELECTED MENU STATUS: LOADED MENU] >>%logdir%\WEBMATRIXLOG.log
:unblockselected
set unblockURL=unblockURL
mode 52,22
echo -UNBLOCK SELECTED
echo                  ----MY PROGRAM----
echo.
echo Listing Blocked Addresses...
type %hosts%
echo.
echo b/back
echo Enter the website to unblock:
set /p unblockURL=www.
if %unblockURL% == unblockURL (goto unblockselected ) else if %unblockURL% == b (
echo [%time%] [UNINSTALL SELECTED MENU STATUS: USER BACKED OUT FROM UNINSTALL SELECTED MENU] >>%logdir%\WEBMATRIXLOG.log
goto mainmenu ) else (
echo [%time%] [UNINSTALL SELECTED MENU STATUS: INPUT WEBSITE ADDRESS: www.%unblockURL%] >>%logdir%\WEBMATRIXLOG.log )
echo.
echo Processing...
findstr /i "%unblockURL%" %hosts% >nul
IF %ERRORLEVEL% NEQ 0 (
echo Address is already uninstalled...
ping localhost -n 3 >nul
echo [%time%] [UNINSTALL SELECTED MENU STATUS: ADDRESS IS ALREADY UNINSTALLED] >>%logdir%\WEBMATRIXLOG.log
goto mainmenu )
attrib -r %hosts%
FOR %%A IN (
www.%unblockURL%
) DO (
MOVE %hosts% hosts.bak >NUL
FINDSTR /V /C:"%%A" hosts.bak > %hosts%
DEL /F /Q hosts.bak )
attrib +r %hosts%
echo DONE! - Cleared Selected Blocked Address!
ping localhost -n 2 >nul
echo You may need to restart browser
ping localhost -n 3 >nul
echo [%time%] [UNINSTALL SELECTED MENU STATUS: REMOVED WEBSITE ADDRESS: www.%unblockURL%] >>%logdir%\WEBMATRIXLOG.log
cls 
goto mainmenu
::Uninstall Selected Bocked Website END

私が話していることを理解してくれたら助けてください。これを可能にしてくれてありがとう。完了すると、このプログラムのコピーを取得することを忘れないでください。おそらく数日で:)

4

1 に答える 1

2

私はこの行を疑う:

findstr /i %IPaddress% %directmode% %%A >>%hosts%

%IPaddress% これにより、 OR を含むすべての行が見つかります%directmode%。あなたのコメントから、not just the ones on the left hand side文字通り「%IPaddress% %directmode%」を含む行を見つけたいと思います - それらの間にスペースがあります。

試す

findstr /i /c:"%IPaddress% %directmode%" %%A >>%hosts%
于 2013-03-19T23:24:57.517 に答える