我想删除文件夹中所有文件名不包含单词“Times”或“Wall”的 pdf 文件。因此,文件 1.pdf 2.pdf All_Times_to_ride.pdf Wall.pdf 都在其中,而结果应该是 All_Times_to_ride.pdf Wall.pdf。
我在搜索脚本方面遇到问题:
@echo off
SETLOCAL EnableDelayedExpansion
SET "pathToFolder=.\MAGAZINES\"
SET "wordToSearch=*Times*"
FOR /F "tokens=*" %%F IN ('dir %pathToFolder% /b *.pdf') DO (
findstr /IP %wordToSearch% "%pathToFolder%\%%F">nul
IF !ERRORLEVEL!==1 (
DEL /Q "%pathToFolder%\%%F"
)
)
1. 我想在名为“Times”和“Wall”的文件中搜索两个单词
第二。现在,它会删除所有文件,即使文件夹中存在 All_Times_to_ride.pdf 文件。
请帮忙,不知道如何修复。
答案1
@echo off
pushd "%~dp0MAGAZINES"
FOR /F eol^=^ delims^= %%F in ('2^>nul dir /b "*.pdf"^|findstr /IV /C:"times wall"') do del /Q "%%F"
popd
eol^=^ delims^=
通过转义每一个分隔符。 看如何禁用 /F 的 eol 和 delims 选项?