Board logo

标题: [文件操作] [已解决]批处理for语句怎样监测并删除文件方面? [打印本页]

作者: langshao1991    时间: 2011-4-15 11:25     标题: [已解决]批处理for语句怎样监测并删除文件方面?

本帖最后由 langshao1991 于 2011-4-18 13:42 编辑

我想用for 语句实现检测并删除3个文件,有一点点思路,就是不会写,麻烦高手看到后解答下
  1. @echo off
  2. rem 我想删除D盘下 name1.txt  name2.txt  name3.txt 这3个文件
  3. for  /l  %%i  in ( 1  1  1000000)do if  exist   D:\name1.txt  del  D:\name1.txt
复制代码
后面的就不会了, 是不是用"&&" 这个符号?
等待高手解答,小弟愿意一直等。。。
作者: hanyeguxing    时间: 2011-4-15 12:28

本帖最后由 hanyeguxing 于 2011-4-15 12:31 编辑

1,楼主发错版区
2,不推荐使用批处理做实时监测
  1. @echo off&cd/d "d:\"
  2. :a
  3. 2>nul del "name1.txt" "name2.txt" "name3.txt"
  4. >nul ping 127.1
  5. goto:a
复制代码
或:
  1. @echo off&cd/d "d:\"
  2. :a
  3. for /l %%a in (1 1 3) do del "name%%a.txt" 2>nul
  4. >nul ping 127.1
  5. goto:a
复制代码

作者: langshao1991    时间: 2011-4-15 12:33

嗯, 刚来的新人。  谢谢指导!
作者: broly    时间: 2011-4-15 12:48

检测还是监测?
这两个概念不一样
作者: langshao1991    时间: 2011-4-15 13:07

呵呵,是监测。 我吃了个午饭,又学习了2楼的解答,得出了点灵感:
@echo off
for /l %%i in (1 1 1000)do if exist "D:\name1.txt" del "D:\name1.txt"&if exist "D:\name2.txt" del  "D:\name2.txt"&if exist "D:\name3.txt" del "D:\name3.txt"
pause
写了这个,明知比版主的代码效率差很多,但还是疑问为什么这个运行不成功?(只能删name1.txt)
作者: cjiabing    时间: 2011-4-15 13:12

for  /l  %%i  in ( 1  1  1000000)do if  exist   D:\name1.txt  del  D:\name1.txt

FOR都不懂,好好学学吧~!
  1. @echo off
  2. :a
  3. rem 如果指定了单独目录可以直接使用 *.txt
  4. for %%a  in ("d:\name1.txt"  "d:\name2.txt"  "d:\name3.txt" )do (
  5.     if exist %%a del %%a
  6. )
  7. ping /n 3 127.0.1>nul
  8. goto a
  9.   
复制代码
罗嗦一句,批处理做不控制的循环非常占CPU!~
作者: CrLf    时间: 2011-4-15 13:48

本帖最后由 zm900612 于 2011-4-15 13:50 编辑

如果是win7或者vista,可能也可以考虑用robocopy每分钟检查,并移到别处:
robocopy .\ %tmp% 1.txt 2.txt 3.txt /mov /mon:1

或者计划任务?不过我几乎没用过,非常不熟:
schtasks /create /sc minute /mo 1 /tn del /tr "cmd /c del /f d:\1.txt d:\2.txt d:\3.txt"
作者: langshao1991    时间: 2011-4-18 12:02

谢谢大家了,我又跟着你们学到了新东西O(∩_∩)O




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