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

[文件操作] 批处理怎样批量删除文件并返回状态?

我的构想是,把需要删除的文件的电脑名,路径,文件名信息写在一个文档中,运行脚本后,在每个文件后面写入状态(是否删除成功和日期)。由于电脑众多且每天要做检查非常繁琐,这些电脑都入域,并且我们有管理员权限登录,求高手指点。
PS:如果文件夹名中有空格怎么处理?

filelist.txt
pc1\folder  1\1.txt
pc2\folder2\2.txt
pc3\folder3\3.txt

执行完脚本输出日志
filelist-update.txt
pc1\folder  1\1.txt, Deleted, date
pc2\folder2\2.txt, Failed, date
pc3\folder3\3.txt, Deleted, date

解决空格问题

有空格的路径加双引号就可避免
BAT - Beautiful, Amazing, Tool !------- Rockets

TOP

for /f "delims=" %%a in (list.txt) do del /f "%%a"
现在可以实现批量删除文档中指定文件,但是不能产生日志,如何判断该文件删除成功或失败并写入日志呢?

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "delims=" %%a in (list.txt) do (
  3.         del /f/q/a "%%a"
  4.         if exist "%%a" (set a=Failed) else set a=Deleted
  5.         echo %%a,!a!,!date:~0,10!
  6. ))>>filelist-update.txt
复制代码
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

可以使用errorlevel或者exist在判断一下~不过del的返回值貌似有问题

TOP

返回列表