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


把你的代码保存为C:\test.bat
开始
运行
cmd
cd /d c:\
test.bat
把执行过程贴出来看看是哪一步出错了

TOP

本帖最后由 jwwlchen 于 2012-10-27 15:04 编辑

回复 6# forfiles


  我的批处理出问题了 ,能帮我看下问题出在哪里了吗? 谢谢,在最后删除重复文件时会把所有文件删掉?
  1. set searchfile=f:\temp
  2. set tempfile=c:\templog
  3. set logfile=c:\output
  4. set errcode=1111
  5. :start
  6. if not exist %logfile%\nul mkdir %logfile%
  7. if not exist %tempfile%\nul mkdir %tempfile%
  8. del %tempfile%\. /q
  9. del %logfile%\. /q
  10. :search logs by sn
  11. for /f "delims=" %%a in ('type sn.txt') do (
  12.     copy %searchfile%\%%a*.txt %tempfile%\ /y
  13.         )
  14. :search logs by errcode
  15. for /f "tokens=2 delims=:" %%a in ('findstr /c:"%errcode%" %tempfile%\*.txt') do copy c:%%a %logfile%\. /y
  16. :del repeat logs
  17. cd /d %logfile%
  18. for /f "tokens=1* delims=_" %%a in ('dir /b *.txt') do (
  19.     if defined #%%a (
  20.         del /f /q %%a_%%b
  21.     ) else (
  22.         set #%%a=1
  23.     )
  24. )
复制代码

TOP

回复 7# jwwlchen


    问题解决后,请编辑顶楼帖子在标题前面注明[已解决],并给回答者加分。(所加的分数由论坛供应)

TOP

明白了 谢谢

TOP

回复 5# jwwlchen


    使用#%%a来判断文件是否重复出现过,对于首次出现的文件就define一下#%%a,如果下次再遇到它,就说明是需要删除的文件。

TOP

回复 4# forfiles

不好意思,麻烦您了,
     if defined #%%a (
        del /f /q %%a_%%b
    ) else (
        set #%%a=1
我的理解按照你的逻辑如果 %%a  存在就会删除所有LOG,但是是怎么保证相同的会保留一个

TOP

回复 3# jwwlchen


    具体哪里不懂就直接问

TOP

回复 2# forfiles


    试了下脚本可以使用,没有问题,但是我看不懂唉, 可以给我解释下吗,谢谢您的帮忙!

TOP

  1. @echo off
  2. for /f "tokens=1* delims=_" %%a in ('dir /b *.txt') do (
  3.     if defined #%%a (
  4.         del /f /q %%a_%%b
  5.     ) else (
  6.         set #%%a=1
  7.     )
  8. )
复制代码

TOP

返回列表