[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 【已解决】求bat代码删除文件夹里面今天创建的(全部)文件

本帖最后由 yyz219 于 2024-12-29 13:14 编辑

完美解决了:
@echo off &cd /d "D:\桌面\Desktop\!!!\模拟点关闭按钮" 2>nul
for /f "tokens=3* delims= " %%a in (
   'dir /s/a-d/tc/o-d^|findstr /bc:"%date:~,10%" '
) do (for /f "delims=" %%F in ('dir/b/s "%%b" ') do del/q "%%F") 2>nul
::pause&exit/b

==============================================
下面代码:会删除今天创建的  和 今天修改的
  1. @echo off &cd /d "D:\2新机器"
  2. for /f "tokens=3* delims= " %%a in (
  3.    'dir /s/a-d/tc/o-d^|findstr /bc:"%date:~,10%" '
  4. ) do for /f "delims=" %%F in ('dir/b/s "%%b" ') do del/q "%%F"
  5. pause&exit/b
复制代码

=================================================
原来的问题:
求bat:删除“D:\12文件夹(包括子文件夹)”里面今天创建的(全部)文件,谢谢
我是小白,希望老师多多帮助

回复 1# yyz219

已在此帖中回复 http://www.bathome.net/viewthrea ... =page%3D1#pid286369
1

评分人数

TOP

回复 2# aloha20200628


    成功了 非常感谢
我是小白,希望老师多多帮助

TOP

forfiles命令了解一下,一行命令就可以解决。

forfiles /p "D:\2新机器" /s /d 0 /c "cmd /c del /q @file"

TOP


forfiles 是批处中的批处工具,用于处理某类问题相当简洁,但其时间控制是根据 ‘最后修改时间’,故采用 /d 0 参数会将 ‘当日创建和当日修改’ 一网打尽...

TOP

回复 4# semiuel


    多谢大佬分享, 下面是ai解释

这段代码使用的是 forfiles 命令,它是 Windows 命令行中的一个工具,用于处理文件和目录。以下是对这段代码的详细解释:

代码解释:
forfiles /p "D:\2新机器" /s /d 0 /c "cmd /c del /q @file"
各部分的含义:
forfiles:

这是一个 Windows 命令,用来遍历指定目录中的文件,并对每个文件执行指定的操作。
/p "D:\2新机器":

-p(或 /p)用于指定要处理的根目录。"D:\2新机器" 是要遍历的目标目录路径。
/s:

-s 表示递归地遍历子目录。这意味着不仅会处理 D:\2新机器 目录中的文件,还会处理该目录下所有子目录中的文件。
/d 0:

-d 后跟数字表示“日期”条件。0 表示今天的日期(即仅处理今天修改过的文件)。因此,/d 0 表示只处理今天修改过的文件。
如果想要删除今天及之前修改的文件,可以使用该选项。
/c "cmd /c del /q @file":

-c 后跟一个命令,指定对每个文件执行的操作。此处是 "cmd /c del /q @file",意思是:
cmd /c:在执行完命令后关闭命令提示符。
del /q:删除文件并且不显示删除确认信息(/q 是“静默模式”)。
@file:代表当前正在处理的文件的路径和文件名。每当遍历到一个文件时,@file 会被替换为该文件的路径。
总结:
这段代码的作用是:

遍历 D:\2新机器 目录及其所有子目录。
查找今天修改过的文件(/d 0)。
对每个找到的文件,执行删除操作 (del),并且不显示删除确认 (/q)。
注意事项:
这段命令会删除符合条件的文件,请确保你不希望删除的文件不会被误删除。
如果要删除的文件很多,执行时间可能会较长。
这条命令是不可恢复的,因此在执行之前,最好备份重要文件。

TOP

回复 6# 小白龙


    AI回复的好详细。
不过确实如5楼大佬说的那样,这条命令不光删除今天创建的文件,还会删除今天修改的文件。
所以请谨慎操作。

TOP

回复  小白龙


    AI回复的好详细。
不过确实如5楼大佬说的那样,这条命令不光删除今天创建的文件, ...
semiuel 发表于 2024-12-17 16:03


真的“不光删除今天创建的文件,还会删除今天修改的文件。”

怎样才能够仅仅删除 今天创建的文件?
我是小白,希望老师多多帮助

TOP

forfiles 是批处中的批处工具,用于处理某类问题相当简洁,但其时间控制是根据 ‘最后修改时间’,故采用 ...
aloha20200628 发表于 2024-12-16 12:35


真的“不光删除今天创建的文件,还会删除今天修改的文件。”

怎样才能够仅仅删除 今天创建的文件?
我是小白,希望老师多多帮助

TOP

本帖最后由 aloha20200628 于 2024-12-29 10:48 编辑


因二楼引用帖被限权访问,这里再明确一些要点》
一。如 xcopy/robocopy/forfiles 这些系统预装工具的当日时控参数均根据文件或目录的 ‘修改时间’,故在批处代码中根据 ‘创建时间’ 参数的文件/目录操作也许用 dir /tc ... 匹配列表获取更为直接...

二。可用以下一行流代码速览当前目录下的当日(创建)文件列表...
  1. dir /s/a-d/tc/o-d|findstr /bc:"%date:~,10%"
复制代码
三。可用以下一行流代码速览当前目录下的当日(创建)子目录列表...
  1. dir /s/ad/tc/o-d|findstr /bc:"%date:~,10%"
复制代码
1

评分人数

TOP

回复 10# aloha20200628


    我需要完整代码,谢谢
我是小白,希望老师多多帮助

TOP

本帖最后由 aloha20200628 于 2024-12-29 11:55 编辑

回复 11# yyz219

删除目标文件夹(包括其子文件夹)中全部当日创建文件》
代码中预设要处理的目标文件夹是 "d:\test",可由楼主自定义,以下代码不要存于目标文件夹中运行...
  1. @echo off &cd /d "d:\test" 2>nul
  2. for /f "tokens=3* delims= " %%a in (
  3.    'dir /s/a-d/tc/o-d^|findstr /bc:"%date:~,10%" '
  4. ) do (for /f "delims=" %%F in ('dir/b/s "%%b" ') do del/q "%%F") 2>nul
  5. pause&exit/b
复制代码
1

评分人数

TOP

本帖最后由 aloha20200628 于 2024-12-29 13:31 编辑

回复 11# yyz219

如系统已经预装 powershell,亦可用以下的 bat+powershell 版本(其中预设目标文件夹为 d:\test),存为 test.bat 但不要放在目标文件夹下...
  1. @echo off &powershell "dir -path 'd:\test' -file -r|%%{if($_.creationTime.tostring('yyyy-MM-dd') -eq (get-date -format 'yyyy-MM-dd')){del $_.fullname}}" &pause&exit/b
复制代码

TOP

返回列表