Board logo

标题: [文件操作] 批处理怎样批量删除文件并返回状态? [打印本页]

作者: szsy    时间: 2010-12-1 16:27     标题: 批处理怎样批量删除文件并返回状态?

我的构想是,把需要删除的文件的电脑名,路径,文件名信息写在一个文档中,运行脚本后,在每个文件后面写入状态(是否删除成功和日期)。由于电脑众多且每天要做检查非常繁琐,这些电脑都入域,并且我们有管理员权限登录,求高手指点。
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
作者: rockets    时间: 2010-12-1 16:51     标题: 解决空格问题

有空格的路径加双引号就可避免
作者: szsy    时间: 2010-12-2 12:53

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

  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
复制代码

作者: bluewing009    时间: 2010-12-2 20:06

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




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2