Windows 使用批处理添加多个防火墙规则

Windows 使用批处理添加多个防火墙规则,windows,batch-file,windows-firewall,Windows,Batch File,Windows Firewall,我一直在网上寻找解决我问题的方法。我有一大堆测试应用程序,我需要使用Windows7防火墙将它们设置为LAN访问,而不是INTERNET访问。虽然,我可以手动执行此操作,但这将非常耗时 我找到了Charles先生的批处理文件,但它阻止了局域网访问我的应用程序 @echo off REM BATCH FILE CREATED BY CHARLES DE HAVILLAND 20/02/2012, v2 08/09/2015 REM https://sites.google.com/si

我一直在网上寻找解决我问题的方法。我有一大堆测试应用程序,我需要使用Windows7防火墙将它们设置为LAN访问,而不是INTERNET访问。虽然,我可以手动执行此操作,但这将非常耗时

我找到了Charles先生的批处理文件,但它阻止了局域网访问我的应用程序

@echo off
REM      BATCH FILE CREATED BY CHARLES DE HAVILLAND 20/02/2012, v2 08/09/2015
REM  https://sites.google.com/site/mytools4000/home/allow-block-multiple-programs-through-windows-7-firewall
cls
SETLOCAL EnableDelayedExpansion
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
 set "DEL=%%a"
 )
 If "%1"=="" GOTO :norulename
  SET RULENAME=%1
 ECHO.
 ECHO.
 ECHO Add 'In AND Out' Firewall rules to all 
 call :ColorText 0b "*.exe ^& *.dll"
 ECHO files in,
 ECHO.
 ECHO   %CD% (inc subfolders)
 ECHO.
 ECHO   "%RULENAME%" Firewall rule name will be used ?
 ECHO.
 ECHO.
 ECHO.
 ECHO press CTRL+C to stop now or
 pause
 cls
 Echo.
 FOR /r %%G in ("*.exe") Do (@echo %%G
 NETSH advfirewall firewall add rule name="%RULENAME%-%%~nxG" dir=in    program="%%G" action="block" enable="yes")
 FOR /r %%G in ("*.exe") Do (@echo %%G
 NETSH advfirewall firewall add rule name="%RULENAME%-%%~nxG" dir=out program="%%G" action="block" enable="yes")
 FOR /r %%G in ("*.dll") Do (@echo %%G
 NETSH advfirewall firewall add rule name="%RULENAME%-%%~nxG" dir=in program="%%G" action="block" enable="yes")
 FOR /r %%G in ("*.dll") Do (@echo %%G
 NETSH advfirewall firewall add rule name="%RULENAME%-%%~nxG" dir=out program="%%G" action="block" enable="yes")
 Echo.
 Echo done.
 GOTO :Finish

 :norulename
 for %%* in (.) do set RULENAME=%%~nx*
 ECHO.
 ECHO Add 'In AND Out' Firewall rules to all 
 call :ColorText 0b "*.exe ^& *.dll"
 ECHO files in,
 ECHO   %CD% (inc subfolders)
 ECHO.
 ECHO   "%RULENAME%" Firewall rule name will be used ?
 ECHO.
 ECHO.
 ECHO.
 ECHO press CTRL+C to stop now or
 pause
 cls
 Echo.
 REM FOR /r %%G in ("*.exe") Do (@echo %%G
 REM NETSH advfirewall firewall add rule name="%RULENAME%-%%~nxG" dir=in program="%%G" action="block" enable="yes")
 REM FOR /r %%G in ("*.exe") Do (@echo %%G
 REM NETSH advfirewall firewall add rule name="%RULENAME%-%%~nxG" dir=out program="%%G" action="block" enable="yes")
 REM FOR /r %%G in ("*.dll") Do (@echo %%G
 REM NETSH advfirewall firewall add rule name="%RULENAME%-%%~nxG" dir=in program="%%G" action="block" enable="yes")
REM FOR /r %%G in ("*.dll") Do (@echo %%G
REM NETSH advfirewall firewall add rule name="%RULENAME%-%%~nxG" dir=out program="%%G" action="block" enable="yes")
Echo.
Echo done.

:ColorText
echo off
<nul set /p ".=%DEL%" > "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1

:Finish
Echo.
Echo.
Echo Batch ended...
@echo关闭
CHARLES DE HAVILLAND创建的REM批处理文件2012年2月20日,2015年9月8日第2版
雷姆https://sites.google.com/site/mytools4000/home/allow-block-multiple-programs-through-windows-7-firewall
cls
SETLOCAL EnableDelayedExpansion
对于/F“tokens=1,2 delims=#”%%a in(‘“prompt#$H#$E#&echo on&for%%b in(1)do rem“’)do(
设置“DEL=%%a”
)
如果“%1”==“转到:norulename
设置规则名称=%1
回声。
回声。
ECHO将“输入和输出”防火墙规则添加到所有
调用:ColorText 0b“*.exe^&*.dll”
回显文件,
回声。
回显%CD%(包括子文件夹)
回声。
是否将使用回显“%RULENAME%”防火墙规则名称?
回声。
回声。
回声。
ECHO按CTRL+C立即停止,或
暂停
cls
回声。
对于“*.exe”中的/r%%G,执行(@echo%%G
NETSH advfirewall firewall add rule name=“%RULENAME%%-%%~nxG”dir=in program=“%%G”action=“block”enable=“yes”)
对于“*.exe”中的/r%%G,执行(@echo%%G
NETSH advfirewall firewall add rule name=“%RULENAME%%-%%~nxG”dir=out program=“%%G”action=“block”enable=“yes”)
对于(“*.dll”)中的/r%%G,执行(@echo%%G
NETSH advfirewall firewall add rule name=“%RULENAME%%-%%~nxG”dir=in program=“%%G”action=“block”enable=“yes”)
对于(“*.dll”)中的/r%%G,执行(@echo%%G
NETSH advfirewall firewall add rule name=“%RULENAME%%-%%~nxG”dir=out program=“%%G”action=“block”enable=“yes”)
回声。
回音完毕。
后藤:完成
:norulename
对于(.)中的%%*设置规则名=%%~nx*
回声。
ECHO将“输入和输出”防火墙规则添加到所有
调用:ColorText 0b“*.exe^&*.dll”
回显文件,
回显%CD%(包括子文件夹)
回声。
是否将使用回显“%RULENAME%”防火墙规则名称?
回声。
回声。
回声。
ECHO按CTRL+C立即停止,或
暂停
cls
回声。
在(“*.exe”)中对/r%%G进行REM(@echo%%G
REM NETSH advfirewall firewall add rule name=“%RULENAME%-%%~nxG”dir=in program=“%%G”action=“block”enable=“yes”)
在(“*.exe”)中对/r%%G进行REM(@echo%%G
REM NETSH advfirewall firewall add rule name=“%RULENAME%-%%~nxG”dir=out program=“%%G”action=“block”enable=“yes”)
在(“*.dll”)Do(@echo%%G)中/r%%G的REM
REM NETSH advfirewall firewall add rule name=“%RULENAME%-%%~nxG”dir=in program=“%%G”action=“block”enable=“yes”)
在(“*.dll”)Do(@echo%%G)中/r%%G的REM
REM NETSH advfirewall firewall add rule name=“%RULENAME%-%%~nxG”dir=out program=“%%G”action=“block”enable=“yes”)
回声。
回音完毕。
:彩色文本
回音
"%~2"
findstr/v/a:%1/R“^$”“%~2”个
删除“%~2”>nul 2>&1
:完成
回声。
回声。
回音批处理结束。。。
这是一个非常有用的批处理应用程序。但我需要修改它,只允许本地/局域网访问应用程序,并拒绝Internet访问。你们能帮帮我吗


操作系统:WINDOWS 7 ULTIMATE 32位

这将为您提供所需的信息。谢谢你的评论。我研究了几个小时,并对批处理脚本进行了一些修改。然而,它仍然不起作用。我真的希望这里有一个在批处理编程方面有丰富经验的人能帮助我解决这个问题。我在批处理文件中没有看到对netsh代码的任何更改。请向我们展示您试图更改的内容。您不需要有丰富的批处理编程经验的人来帮助您。您需要了解NETSH命令以及它如何应用于高级防火墙规则的人员。