<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,如需轉載請自行聯系原作者