<code>@</code><code>echo</code> <code>off</code>
<code>rem v1.0.2</code>
<code>color 2f</code>
<code>title Windows防火墙端口阻塞</code>
<code>set</code> <code>dport=8000</code>
<code>set</code> <code>direction=out</code>
<code>goto menu</code>
<code>:menu</code>
<code>set</code> <code>rule_name=block_tcp_%direction%_%dport%</code>
<code>echo</code><code>.</code>
<code>echo</code> <code>菜单:</code>
<code>echo</code> <code>1. 增加这条规则: </code>
<code>echo</code> <code>[规则名:%rule_name%]</code>
<code>echo</code> <code>[操作: 阻塞]</code>
<code>echo</code> <code>[端口: %dport%]</code>
<code>echo</code> <code>[方向: %direction%]</code>
<code>echo</code> <code>2. 删除这条规则: </code>
<code>echo</code> <code>[规则名: %rule_name%]</code>
<code>echo</code> <code>3. 设定新的端口和方向: </code>
<code>echo</code> <code>[默认值: 端口=8000, 方向=out]</code>
<code>echo</code> <code>4. 显示这条规则: </code>
<code>echo</code> <code>5. 显示所有名称以block_tcp开头的规则: </code>
<code>echo</code> <code>[规则名: 以“block_tcp”开头]</code>
<code>echo</code> <code>8. 帮助</code>
<code>echo</code> <code>9. 菜单</code>
<code>echo</code> <code>0. 退出</code>
<code>echo</code> <code>_____________________________________________________________</code>
<code>echo</code> <code>注1:选择数字,然后按回车;</code>
<code>goto start</code>
<code>:menu_help</code>
<code>echo</code> <code>操作方法:</code>
<code>echo</code> <code>→ 按3(回车):设定参数,示例如下,</code>
<code>echo</code> <code>端口[8000]=9001(回车)</code>
<code>echo</code> <code>方向[out]=(回车)(即默认的out);</code>
<code>echo</code> <code>→ 按1(回车):增加新规则“block_tcp_out_9001”到防火墙;</code>
<code>echo</code> <code>→ 按4(回车):显示当前规则“block_tcp_out_9001”;</code>
<code>echo</code> <code>→ 按2(回车):删除当前规则“block_tcp_out_9001”;</code>
<code>echo</code> <code>重复上述步骤,操作新的规则;</code>
<code>echo</code> <code>→ 按5(回车):显示所有名称以“block_tcp”开头的规则;</code>
<code>echo</code> <code>删除前,请先确认当前设定的端口和方向。</code>
<code>:start</code>
<code>echo</code> <code>[1(新增),2(删除),3(设定),4(显示),5(显示所有)]</code>
<code>echo</code> <code>-------------------------------------------------------------</code>
<code>set</code> <code>choice=</code>
<code>set</code> <code>/p</code> <code>choice=请选择:</code>
<code>if</code> <code>/i</code> <code>"%choice%"</code><code>==</code><code>""</code> <code>goto warn</code>
<code>if</code> <code>/i</code> <code>%choice%==1 goto rule_add</code>
<code>if</code> <code>/i</code> <code>%choice%==2 goto rule_del</code>
<code>if</code> <code>/i</code> <code>%choice%==3 goto setting</code>
<code>if</code> <code>/i</code> <code>%choice%==4 goto rule_show</code>
<code>if</code> <code>/i</code> <code>%choice%==5 goto rule_show_all</code>
<code>if</code> <code>/i</code> <code>%choice%==8 goto menu_help</code>
<code>if</code> <code>/i</code> <code>%choice%==9 goto menu</code>
<code>if</code> <code>/i</code> <code>%choice%==0 goto end</code>
<code>:warn</code>
<code>echo</code> <code>警告!输入无效,请重新选择!& goto start</code>
<code>:rule_add</code>
<code>netsh advfirewall firewall add rule name=</code><code>"%rule_name%"</code> <code>dir</code><code>=%direction% protocol=tcp remoteport=%dport% action=block</code>
<code>:rule_del</code>
<code>netsh advfirewall firewall del rule </code><code>dir</code><code>=%direction% name=</code><code>"%rule_name%"</code>
<code>:rule_show</code>
<code>netsh advfirewall firewall show rule </code><code>dir</code><code>=%direction% name=</code><code>"%rule_name%"</code>
<code>:rule_show_all</code>
<code>netsh advfirewall firewall show rule </code><code>dir</code><code>=%direction% name=all|findstr block_tcp</code>
<code>:setting</code>
<code>set</code> <code>/p</code> <code>dport=端口[8000]:</code>
<code>echo</code> <code>%dport%|findstr </code><code>"[^0-9]"</code>
<code>echo</code> <code>%dport%|findstr </code><code>"[^0-9]"</code> <code>> nul && goto setting || goto setting_2</code>
<code>:setting_2</code>
<code>set</code> <code>/p</code> <code>direction=方向[out]:</code>
<code>echo</code> <code>%direction%|findstr </code><code>"in out"</code> <code>> nul && goto menu || goto setting_2</code>
<code>:end</code>
<code>exit</code>
本文转自 pcnk 51CTO博客,原文链接:http://blog.51cto.com/nosmoking/1595989,如需转载请自行联系原作者