如何从我正在运行批处理文件的位置和以下级别搜索多个文件夹,并删除名为“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或者更多都将被随机命名,我想要排除的文件夹将是主要的主安装集,所以不能触及这个,但会位于其他文件夹中
答案 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.