批量删除文件夹中不包含短语的所有文件

Batch To delete all files in a folder that do not contain a phrase

我需要一个批处理文件来删除更多不包含一系列单词的文件。

文件夹根路径

D:\Programmi Installati\Openvpn Portable\data\log

文件名不同但以 .log 结尾

123.log
abc.log
home.log

我需要删除源 "Successfully Connected" 中不包含的所有文件,这些文件有很多行。

此 bat 文件必须读取保存在文件夹中的文件 .log 并删除所有不包含短语 "Successfully Connected"、

的文件

注意:所有文件中都有几行文本,并且包含简单文本。

@echo off
pushd "D:\Programmi Installati\Openvpn Portable\data\log"
for %%# in (*.log) do (

  find /i "Succefully Connected" "%%~f#" >nu 2>nul||(
    del /q /f "%%~f#" >nul 2>nul
  ) 

)
popd