После ваших комментариев, я думаю, это то, что вы хотите:
@echo off
setlocal enabledelayedexpansion
for /R %%i in (*.txt) do (
if exist "%%~dpni.pkg" set "fn=%%~dpni" & for %%a in (!fn!) do del %%~dpna*
)
Мы ищем *.txt
и получаем их имя, независимо от того, как они называются. Затем мы проверяем, совпадает ли имя файла (исключая расширение .txt
) и добавляя расширение .pkg
. Затем мы запускаем другой цикл, чтобы снова удалить любое расширение, которое в случае, если имя было удалено из расширения, может / не может содержать P3*
, тогда, если это условие истинно, это означает, что мы нашли и filename.txt
, и filename.pkg
(независимо от того, содержит ли он P3 * или нет), мы просто запускаем `del filename * (исключая P3 * и исключая любое расширение.
Опять же, note Я добавил эхо перед командами del
, чтобы вы могли проверять и печатать только результат, только удаляйте echo
из последней строки do echo del %%~dpna*
, как только вы довольны тем, что результаты выводятся на экран.