【问题标题】:Delete specific files, exclude specific directories, batch file删除特定文件,排除特定目录,批处理文件
【发布时间】:2014-08-02 15:21:09
【问题描述】:

如何从运行批处理文件的位置和以下级别搜索多个文件夹,并删除名为“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,一旦它工作,我也将添加)已经有一个空间,这个脚本将在数百个站点上运行,整理他们的安装集,所以文件夹 1 和文件夹 2或者可能更多都将被随机命名,而我要排除的文件夹将是主要的主安装集,所以不能碰这个但会位于其他文件夹中

【问题讨论】:

    标签: batch-file directory delete-file


    【解决方案1】:

    这显示了主体。你不需要第一个陈述。使用 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.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-14
      • 2023-01-10
      • 2021-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多