Batch file 删除特定文件、排除特定目录、批处理文件
如何从运行批处理文件的位置及其以下级别搜索多个文件夹,并删除名为“file Setup.msi”的文件,但不包括目录“%~dp0Installer Upgrader”。我试过这个:Batch file 删除特定文件、排除特定目录、批处理文件,batch-file,directory,delete-file,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
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或更多可能都将被随机命名,并且我想排除的文件夹将是主主安装集,因此不能接触这个,但将位于其他安装集之间。这显示了主体。你不需要第一句话。使用dir和findstr。您还可以对循环使用
查看文档中文件夹的大小,不包括音乐、视频或图片文件夹
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.