删除特定文件,排除特定目录,批处理文件

时间:2014-08-02 15:21:10

标签: batch-file directory delete-file

如何从我正在运行批处理文件的位置和以下级别搜索多个文件夹,并删除名为“file Setup.msi”的文件,但排除目录“%~dp0Installer-Upgrader”。我试过这个:

FOR /r /d %%I in (CabiBond Setup.msi) do (
    if /i NOT "%%~nxI" equ "Installer-Upgrader" rmdir /q /s "%%~I"
)
DEL /q "file Setup.msi"

PAUSE

但是从这个相同的脚本我得到的信息如下:

  

C:\ Folder1中\ FOLDER2 \的setup.msi

     

系统找不到指定的文件

  

找不到C:\ Folder1 \ file Setup.msi

(C:\ Folder1 \是我正在运行批处理文件的地方)

不幸的是msi(或其他文件名的exe,我也会在这个工作时添加)已经有一个空间,这个脚本将运行数百个网站,整理他们的安装集,所以folder1和folder2或者更多都将被随机命名,我想要排除的文件夹将是主要的主安装集,所以不能触及这个,但会位于其他文件夹中

1 个答案:

答案 0 :(得分:0)

这显示了校长。你不需要第一个声明。使用dir和findstr。您还可以使用for循环。

查看文档中文件夹的大小,不包括音乐,视频或图片文件夹。

for /f "skip=2 tokens=3" %A in ('Reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Personal"') do set doc=%A

for /f "usebackq tokens=2* delims= " %i IN (`dir "%doc%" /a /s ^|findstr /i /v "\/"^|findstr /l /v "Pictures Music Video"`) DO @echo %j&echo.