学习 / 批处理 · 2021年8月22日

批处理win出入站规则

win10出入规则处理

@echo off
:start
set /p schoose=”输入选择添加规则,是否启用规则,显示,删除,ip入站(add|set|show|del|ip):”
if “%schoose%”==”add” goto add
if “%schoose%”==”set” goto set
if “%schoose%”==”show” goto show
if “%schoose%”==”del” goto del
if “%schoose%”==”ip” goto ip
:add
set /p achoose=”选择加出|入规则(addout|addin):”
if “%achoose%”==”addout” goto addout
if “%achoose%”==”addin” goto addin
:addin
set /p rname=”规则名称:”
set /p appath=”程序路径:”
set /p isallow=”允许|阻止(a|b):”
if “%isallow%”==”a” set act=”allow”
if “%isallow%”==”b” set act=”block”
netsh advfirewall firewall add rule name=”%rname%” dir=in action=”%act%” program=”%appath%” enable=yes
goto start
:addout
set /p rname=”规则名称:”
set /p appath=”程序路径:”
set /p isallow=”允许|阻止(a|b):”
if “%isallow%”==”a” set act=”allow”
if “%isallow%”==”b” set act=”block”
netsh advfirewall firewall add rule name=”%rname%” dir=out action=”%act%” program=”%appath%” enable=yes
goto start
:set
set /p setchoose=”选择启用|停用规则(yes|no):”
if “%setchoose%”==”yes” goto setable
if “%setchoose%”==”no” goto setunable
:setable
set /p setrname=”规则名称:”
netsh advfirewall firewall set rule name=”%setrname%” new enable=yes
goto start
:setunable
set /p setrname=”规则名称:”
netsh advfirewall firewall set rule name=”%setrname%” new enable=no
goto start
:show
set /p wchoose=”选择显示全部|按名称显示(all|name):”
if “%wchoose%”==”all” goto showinout
if “%wchoose%”==”name” goto nameshow
:showinout
set /p inchoose=”选择显示全部入|出规则(sin|sout):”
if “%inchoose%”==”sin” goto showin
if “%inchoose%”==”sout” goto showout
:showin
netsh advfirewall firewall show rule name=all dir=in verbose
goto start
:showout
netsh advfirewall firewall show rule name=all dir=out verbose
goto start
:nameshow
set /p name=”输入规则名称:”
netsh advfirewall firewall show rule name=”%name%” verbose
goto start
:del
set /p delchoose=”删除程序规则|ip规则(delap|delip):”
if “%delchoose%”==”delap” goto delap
if “%delchoose%”==”delip” goto delip
:delap
set /p dname=”规则名称:”
set /p dappath=”程序路径:”
netsh advfirewall firewall delete rule name=”%dname%” program=”%dappath%”
goto start
:delip
set /p dname=”规则名称:”
set /p setip=”ip:”
netsh advfirewall firewall delete rule name=”%dname%” remoteip=”%setip%”
goto start
:ip
set /p dname=”规则名称:”
set /p setip=”ip:”
set /p isallow=”允许|阻止(a|b):”
if “%isallow%”==”a” set act=”allow”
if “%isallow%”==”b” set act=”block”
netsh advfirewall firewall add rule name=”%dname%” dir=in action=”%act%” protocol=any remoteip=”%setip%”
goto start

保存为bat文件。右键管理员身份运行。