使用以下批处理脚本将IP添加到现有入站规则时,如何避免IP列表覆盖。
ipadd.bat:
@echo off
for /f "tokens=*" %%a in (ips.txt) do (
echo line=%%a
netsh advfirewall firewall set rule name="Testrule" dir=in protocol=any new remoteip=%%a
)
ips.txt
使用换行符列出的IP(每行都在新行上)
现在,每当我向ips.txt添加新IP时,规则都会使用新IP进行更新,但旧IP列表会覆盖新的IP列。有没有办法更新,不会丢失旧列表。
答案 0 :(得分:0)
@echo OFF
IF NOT EXIST installedips.txt >installedips.txt ECHO @
for /f "tokens=*" %%a in (
'findstr /x /v /i /L /g:installedips.txt "ips.txt" '
) do (
echo line=%%a
>>installedips.txt echo %%a
netsh advfirewall firewall set rule name="Testrule" dir=in protocol=any new remoteip=%%a
)
GOTO :EOF
这应符合要求。
在installedips.txt
中保存已安装的ips的日志 - 如果该文件不存在,则创建具有虚拟值的文件。
然后处理文件的每一行/v
,不包括/x
完全匹配/i
的行,而不管/L
字面上/g:
installedips.txt
{ {1}}档案。
因此,唯一要处理的行是新行,新值将附加到installedips.txt
文件。
(未经测试)