Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 为什么要删除每个文本文件而不是昨天';日期_Batch File - Fatal编程技术网

Batch file 为什么要删除每个文本文件而不是昨天';日期

Batch file 为什么要删除每个文本文件而不是昨天';日期,batch-file,Batch File,我这里有一个批处理文件,它将删除昨天的文件 为什么要在指定日期删除所有内容?有什么提示吗 @echo off set "source=E:\test" set day=-1 echo >"%temp%\%~n0.vbs" s=DateAdd("d",%day%,now) : d=weekday(s) echo>>"%temp%\%~n0.vbs" WScript.Echo year(s)^& right(100+month(s),2)^& right(1

我这里有一个批处理文件,它将删除昨天的文件

为什么要在指定日期删除所有内容?有什么提示吗

@echo off


set "source=E:\test"

set day=-1

echo >"%temp%\%~n0.vbs" s=DateAdd("d",%day%,now) : d=weekday(s)
echo>>"%temp%\%~n0.vbs" WScript.Echo year(s)^& right(100+month(s),2)^& right(100+day(s),2)
for /f %%a in ('cscript /nologo "%temp%\%~n0.vbs"') do set "result=%%a"
del  "%temp%\%~n0.vbs"
set "YYYY=%result:~0,4%"
set "MM=%result:~4,2%"
set "DD=%result:~6,2%"
set "result=%yyyy%%mm%%dd%"
echo %result%

for /r "E:\test" %%G in (*%result%.txt) do (

DEL /F /Q "%%~fG" "E:\test"

if not exist "E:\test%%~nxG" (

    echo File "%%~fG" Deleted
    ) else (
    echo File "%%~fG" was not Deleted
   )
)
pause

我正在尝试学习如何使用这个较短的方法:

简而言之,它会删除所有内容,因为您告诉它这样做:

DEL /F /Q "%%~fG" "E:\test"
当告诉
del
命令使用
/F
orce和
/Q
uiet选项从目录中删除时,它将强制且安静地删除该文件夹中的所有内容。这正是您要命令执行的操作。您将首先将删除文件与找到的日期连接起来,然后删除目录中的所有内容。它应该是:

del /F /Q "%%~fG"
要演示发生了什么,请创建以下批处理文件。在每次
暂停时
,检查删除内容的结果,然后按任意键继续:

@echo off
mkdir E:\DelTest
echo test>E:\DelTest\test20200225.txt
echo test>E:\DelTest\test20200224.txt
echo test>E:\DelTest\test20200223.txt
del E:\DelTest\*20200224.txt
dir /b E:\DelTest
pause
del /F /Q E:\DelTest
dir /b E:\Deltest
pause
rmdir /Q E:\DelTest >nul >2&1
del %~0
del/?
from
cmd
提供:

指定一个或多个文件或目录的列表