2017-02-17 20 views
0

如何避免在使用下面的批處理腳本將IP添加到現有入站規則時覆蓋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地址現在我每次添加新的IP地址到IPS .txt,規則用新IP更新,但舊IP列表用新IP集合進行過濾。有沒有辦法更新,而不是丟失舊名單。

回答

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 

這應該符合要求。

將安裝的ips記錄在installedips.txt中 - 如果該文件不存在,則使用虛擬值創建該文件。

然後處理該文件的每一行,/v排除線即/xinstalledips.txt文件中的任何線完全匹配/i無論殼體/L的字面/g:

因此,將要處理的唯一行是新行,新值將被追加到installedips.txt文件中。

(未測試)

+0

尼斯變通,它工作得很好...謝謝!!!!! –