CMD我的程序(它必须是15个字符长)

时间:2013-03-19 20:42:48

标签: cmd

大家好,我刚刚写完1800+内容的代码批处理文件......它的作用是阻止网站并解锁它们。现在的功能是你可以进入一个网站并阻止它,你也可以阻止一大堆。现在你可以在网站名称中拼写它,它将解除阻止,或者你可以解锁它们所有你删除文件。现在有一个新功能......重定向,我成功地与你们一起成就了:)。现在这样做,你有2个选项使网站重定向到另一个网站或重定向到“无法连接页面”。是的,这就是为什么我问你们有关如何在ping网站时提取IP地址然后我的程序将IP地址存储在变量中的原因。那么你可以输入一个网站,例如www.facebook.com它将ping网站并获得IP地址并将其存储在变量中。但是在进入要取消阻止的网站时这是一个问题。所以我使用findstr命令来查找被阻止的网站并删除它,但这是一个多元化的hasale。它将解锁网站必须重定向的IP地址。

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

当它重定向到“无法连接页面”(localhost)时,它就像这样......

127.0.0.1 www.miniclip.com.

现在这是我的问题CMD不知道哪个是被阻止的网站,哪个是重定向网站。所以我需要有人帮我提供一些代码,是的,一旦完成,我保证给你一个链接,这样你就可以下载这个花了我大约173个小时的程序,因为我不得不做很多很多头脑风暴和思考不只是从头顶输入代码。现在这里是我坚持的代码...

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

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

directstate varible是varible,是重定向到网站或localhost的选项

如果在网站上设置了directstate varible,则在提取的ping IP地址上设置Ipaddress varible,如果directstate在localhost上,则IP地址设置在127.0.0.1,并且hosts varible是dir的地址。主机文件正在设置。

以下是解锁网站的完整代码......

::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

如果你明白我在说什么,请帮助我。谢谢大家让这成为可能。请记住,一旦完成,您将获得该程序的副本。可能在几天内:))

1 个答案:

答案 0 :(得分: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%