Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.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
Windows 命令提示符-删除具有特定名称的目录Patern_Windows_Batch File - Fatal编程技术网

Windows 命令提示符-删除具有特定名称的目录Patern

Windows 命令提示符-删除具有特定名称的目录Patern,windows,batch-file,Windows,Batch File,我需要我们一个蝙蝠文件,将删除特定的目录,只要他们肉两个特定的critera。1) 如果目录超过14天2)如果目录名由所有数字组成 我有下面的代码,它只处理标准1,也就是说,目录已经超过14天了。我如何扩展它,然后只删除那些基于数字的名称FORFILES/D-14/C“cmd/C如果@isdir==TRUE rmdir@path/s/q”由于这将作为计划作业运行,您可能应该指定根文件夹 您可以使用FINDSTR验证名称是否仅由数字组成。前导点和尾随点需要与@file中包含的引号匹配 pushd

我需要我们一个蝙蝠文件,将删除特定的目录,只要他们肉两个特定的critera。1) 如果目录超过14天2)如果目录名由所有数字组成


我有下面的代码,它只处理标准1,也就是说,目录已经超过14天了。我如何扩展它,然后只删除那些基于数字的名称
FORFILES/D-14/C“cmd/C如果@isdir==TRUE rmdir@path/s/q”

由于这将作为计划作业运行,您可能应该指定根文件夹

您可以使用FINDSTR验证名称是否仅由数字组成。前导点和尾随点需要与@file中包含的引号匹配

pushd "yourRootPath"
FORFILES /D -14 /C "cmd /c IF @isdir == TRUE echo @file|>nul findstr /x .[0-9]*.&&rd /s /q @path"
然而,上述过程可能相当缓慢。迭代数字文件夹名称,然后为每个候选文件夹调用文件以测试日期可能会更快:

pushd "yourRootPath"
for /f "delims=" %%F in ('"dir /b /ad|findstr /x [0-9]*"') do 2>nul forfiles /d -14 /m %%F /c "cmd /c rd /s /q @path"

由于这将作为计划作业运行,您可能应该指定根文件夹

您可以使用FINDSTR验证名称是否仅由数字组成。前导点和尾随点需要与@file中包含的引号匹配

pushd "yourRootPath"
FORFILES /D -14 /C "cmd /c IF @isdir == TRUE echo @file|>nul findstr /x .[0-9]*.&&rd /s /q @path"
然而,上述过程可能相当缓慢。迭代数字文件夹名称,然后为每个候选文件夹调用文件以测试日期可能会更快:

pushd "yourRootPath"
for /f "delims=" %%F in ('"dir /b /ad|findstr /x [0-9]*"') do 2>nul forfiles /d -14 /m %%F /c "cmd /c rd /s /q @path"

您使用的是什么版本的Windows?我正在Windows 7上进行测试,但它最终将作为预定任务在服务器上运行。我不确定windows server的哪个版本,我将进行调查。您使用的是哪个版本的windows?我正在windows 7上进行测试,但它最终将作为服务器上的计划任务运行。我不确定windows server的哪个版本,我将进行调查。@Squashman-是的,请阅读前面关于引号的句子。我尝试第二种解决方案,因为谁不喜欢效率。它给了我
%%%F,这在当时是意外的。
@LCaraway-我编写代码时假设它将用于批处理脚本,这需要两倍的百分比。如果直接在命令行上使用,请将所有
%%F
更改为
%F
。是。Forfiles会加上引号。但我想你也可以显式地匹配引号
findstr/x\0x22[0-9]*\0x22
@Squashman-是的,但没有必要那么具体,因为字符保证是引号-我们只需要考虑它们,以便精确匹配。@Squashman-是的,请阅读前面关于引号的句子。我尝试第二种解决方案,因为谁不喜欢效率。它给了我
%%%F,这在当时是意外的。
@LCaraway-我编写代码时假设它将用于批处理脚本,这需要两倍的百分比。如果直接在命令行上使用,请将所有
%%F
更改为
%F
。是。Forfiles会加上引号。但我想你也可以显式地匹配引号
findstr/x\0x22[0-9]*\0x22
@Squashman-是的,但不必那么具体,因为字符保证是引号-我们只需要考虑它们,以便精确匹配。