批处理脚本出错,thumb.db未找到错误



我使用以下代码删除旧文件

rem declaration des variables
set path=E:somefiles
set delai_retention=15
rem Purge recursive des fichiers
%WINDIR%system32forfiles /p %path% /s /m * /d -%delai_retention% /c "cmd /c del  /q @path"
opsexit %errorlevel%
rem Purge recursive des dossiers vides
%WINDIR%system32forfiles /p %path% /d -%delai_retention% -c "cmd /c if @ISDIR==TRUE rmdir /S /Q @FILE"
opsexit %errorlevel%

但是在每次运行代码时,我的脚本都会以以下错误结束

找不到E:\somefiles\Thumbs.db

如何修复此错误?

首先,提示一下,forfiles无需转到winsys32文件夹即可工作;事实上,winsys32中的每个.exe都可以在没有该代码的情况下使用。没有这样的代码可以减少文件长度,这很好。或者,有些文件需要监督才能删除。使用del/q/f/s,效率更高。不要使用"路径";作为一个名称,是一个系统变量,这会有冲突。我认为cmd/c没用。我认为最好在另一个命令中使用@path而不是@file。这些将是这样的:

rem declaration des variables
set epath=E:somefiles
set delai_retention=15
rem Purge recursive des fichiers
forfiles /p %epath% /s /m * /d -%delai_retention% /c "del /q /f /s @path"
opsexit %errorlevel%
rem Purge recursive des dossiers vides
forfiles /p %epath% /d -%delai_retention% -c "if @ISDIR==TRUE rmdir /S /Q @PATH"
opsexit %errorlevel%

如果您的问题与响应有关,您也可以添加>nul。比如:

rem declaration des variables
set epath=E:somefiles
set delai_retention=15
rem Purge recursive des fichiers
forfiles /p %epath% /s /m * /d -%delai_retention% /c "del /q /f /s @path 0^>nul 1^>nul 2^>nul"
opsexit %errorlevel%
rem Purge recursive des dossiers vides
forfiles /p %epath% /d -%delai_retention% -c "if @ISDIR==TRUE rmdir /S /Q @PATH 0^>nul 1^>nul 2^>nul"
opsexit %errorlevel%

现在,即使在删除文件时遇到一些问题,也不会显示。我希望我帮了你。

最新更新