Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.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/4/webpack/2.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
Date 批处理文件从文本文件中删除带有日期的文件夹_Date_Batch File_Directory - Fatal编程技术网

Date 批处理文件从文本文件中删除带有日期的文件夹

Date 批处理文件从文本文件中删除带有日期的文件夹,date,batch-file,directory,Date,Batch File,Directory,我正在处理一个批处理文件,以删除文件夹名为当前备份日期的备份。到目前为止一切都很好,但我遇到了一个我想维护的错误 这是我到目前为止所拥有的 批处理文件的一部分 @ECHO OFF :RETRY CLS d: cd\mybackup dir /ad /B /o:n > list.txt type d:\mybackup\list.txt | find "-" ECHO Input year and month to delete

我正在处理一个批处理文件,以删除文件夹名为当前备份日期的备份。到目前为止一切都很好,但我遇到了一个我想维护的错误

这是我到目前为止所拥有的

批处理文件的一部分

    @ECHO OFF
    :RETRY
    CLS
    d:
    cd\mybackup
    dir /ad /B /o:n > list.txt
    type d:\mybackup\list.txt | find "-"
    ECHO Input year and month to delete and press Enter.
    ECHO i.e. YYYY-MM
    SET "VARIABLE="
    SET /p VARIABLE=
    if not defined VARIABLE echo No date entered?&PAUSE&goto RETRY
    type list.txt|findstr /i /b "%variable%" >nul
    IF ERRORLEVEL 1 echo Invalid date entered&PAUSE&goto RETRY
    for /D %%f in (%VARIABLE%*) do rmdir %%f /s /q
    CLS
    ECHO %variable% Backup removed from disk! ! !
    PAUSE
    GOTO MAIN
文本文件中的日期

    2013-07-01
    2013-07-02
    2013-07-03
    2013-07-04
    2013-07-05
    2013-08-09
到目前为止,我所拥有的将提示我输入一个日期,以删除带有通配符的旧文件夹。如果未输入日期,则返回错误并再次提示。如果输入未列出的日期,则返回错误并再次提示。但是,如果我输入2013-07,它将删除包含2013-07的所有文件夹。如果我进入2013年,它将删除所有文件夹。我需要以某种方式将输入的变量设置为######-##,这样它只会删除该格式,并且不会比输入的格式短或长


任何帮助都将不胜感激。

您可以在REGEX的帮助下对其进行测试,例如
yyy-mm-dd

echo(%variable%|findstr "^201[0-3]-[0-2][0-9]-[0-3][0-9]$" >nul&& echo date format is good || echo wrong date format

我应该在批处理文件中的什么位置添加它,我可以更改什么?我让它到OP来解决它。如果您只需要保留一定数量的最新备份,可能会有一个更简单的解决方案。