我在主文件夹下面有一些子文件夹
在这些子文件夹中,基本上,在sub1中,以下是3种标准文件类型:
在sub2中:txt文件和pkg文件缺少P3吗?以它的名字
.....
现在我可以使用以下代码 CD主 FOR / R %% G IN(* .TXT)是否存在“ %%〜dpnG” DEL“ %%〜dpnG”
删除子1中的 9980000000113100_2C8C6ADEPatT.P3D 。我无法删除sub2中的 9980000001110000_00000000NARC.P3D
是否可以删除* .P3? Sub1和Sub2中的文件是否存在,取决于该子文件夹中是否存在* .txt ...
我希望我说清楚...
谢谢
答案 0 :(得分:0)
在您发表评论后,我想这就是您想要的:
@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,因此您可以测试并仅打印结果,仅从最后一行echo
中删除do echo del %%~dpna*
一旦您对显示在屏幕上的结果感到满意。
答案 1 :(得分:0)
根据您的错误解释,这是另一个最佳猜测:
@For /F "Delims=" %%A In ('Where /R . *.p3? 2^>Nul') Do @If Exist "%%~dpnA*.pkg" (If Exist "%%~dpnA*.txt" Del /A /F "%%A" >Nul 2>&1)
答案 2 :(得分:0)
for /r %%G in (*.P3?) do if exist "%%~G.txt" del "%%~G"
这将在sub1
9980000000113100_2C8C6ADEPatT.P3D
如果存在
9980000000113100_2C8C6ADEPatT.P3D.txt
确实存在,因此会删除。
这将在sub2
9980000001110000_00000000NARC.P3D
如果存在
9980000001110000_00000000NARC.P3D.txt
不存在,因此无需删除。