Board logo

标题: [文件操作] 批处理怎样检测并记录U盘文件? [打印本页]

作者: Shape    时间: 2011-7-31 15:41     标题: 批处理怎样检测并记录U盘文件?

每天都有好多文件要从电脑里考走,次数一多就记注哪个文件考了,哪个文件没考,想做个批处理,能够记录下来每次插上电脑的U盘里的某种格式的文件,不知道该怎么弄。自己整理了一下,拼凑起一部分代码,但感觉还是有问题,想请教高手,帮我做一下。。。大体的思路是这样的,启动之后,后台运行,并且每隔十五秒钟检测一次是否有U盘插入,如果有,运行zhaodao(开始扫描U盘文件目录,并将扫描到的文件名为*.cdr 的文件追加到 C:\jilu.txt中,一秒中扫描一次,关键问题出现了,由于扫描频率比较频繁,之所以扫描的很频繁是因为U盘随时会拔掉,要在拔掉之前记录下来文件的名字,追加的频繁了,所以文件会增的很大很乱没用了就,所以要记录不重复才行,我也就是到了这里不知道该怎么做了。。。)等U盘拔掉之后就继续十秒扫描一次。。。
  1. @echo off
  2. if not "%1"=="wkdxz" mshta vbscript:createobject("wscript.shell").run("""%~f0"" wkdxz",vbhide)(window.close)&&exit
  3. :jianche
  4. for %%i in (h i j k l m n) do (fsutil fsinfo drivetype %%i: | findstr "可移动" >nul 2>nul && if exist %%i: set upan=%%i:)
  5. if defined upan (call :zhaodao) else (ping 20 127.0.1>nul && call :jianche)
  6. :zhaodao
  7. echo.
  8. echo %time%>>c:\jilu.txt
  9. dir /b %upan%\*.cdr>>C:\jilu.txt
  10. call :jianche
复制代码
你们有更好的办法么,我急用这个程序的。。。
作者: CUer    时间: 2011-7-31 15:47

直接写个批处理去复制那些每天都有的好多文件不行吗?这样就不会忘记哪些没复制了
作者: Shape    时间: 2011-7-31 16:02

回复 2# CUer


    我只要记录文件名就可,文件都是被从我这里复制到U盘带走的,每天都要复制N次,这样几次下来就记不得哪些被考过了,哪些没有拷过,而且一天忙的很,许多时候做的记录都不全,漏一个也不可以,有批处理做个记录,也好有个根据。要不然,我说的考过,对方说我没考过,好多次都说不清楚,而对方也不做任何记录,,,恼火的很。。。
作者: CUer    时间: 2011-7-31 16:06

回复 3# Shape


copy命令自己就可以记录了啊
  1. copy /y "C:\test\*.*" "H:\test\" >copylist.log
复制代码

作者: bluewing009    时间: 2011-7-31 20:01

回复 1# Shape


    按照你的思路顺下去,问题出在如何精简记录上。如果按你说的1s记录一次的话,U盘插入时间越长,体积就越可观…………
所以,建议利用findstr对比特性,即:1s生成一个文件作为基础文件2s生成一个文件,然后对比(重复与差异),生成基础文件(覆盖原来的基础文件),3s生成文件再与基础文件对比,以此类推…………
作者: Shape    时间: 2011-8-1 09:08

回复 5# bluewing009


    问题 是我不知道该怎么用,希望能有详细一点的帮助,谢谢
作者: bluewing009    时间: 2011-8-1 12:12

回复 6# Shape


   明显你有一定的知识,建议你自己先想想
参考一下 findstr /?
特别是 /v 参数
作者: Shape    时间: 2011-8-1 13:18

回复 7# bluewing009


    我不会批处理,每次学一点过一段时间就忘光了,所以又得重新在看。。。不过挺喜欢的,我去研究一下




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