标题: [文件操作] 批处理怎样检测并记录U盘文件? [打印本页]
作者: Shape 时间: 2011-7-31 15:41 标题: 批处理怎样检测并记录U盘文件?
每天都有好多文件要从电脑里考走,次数一多就记注哪个文件考了,哪个文件没考,想做个批处理,能够记录下来每次插上电脑的U盘里的某种格式的文件,不知道该怎么弄。自己整理了一下,拼凑起一部分代码,但感觉还是有问题,想请教高手,帮我做一下。。。大体的思路是这样的,启动之后,后台运行,并且每隔十五秒钟检测一次是否有U盘插入,如果有,运行zhaodao(开始扫描U盘文件目录,并将扫描到的文件名为*.cdr 的文件追加到 C:\jilu.txt中,一秒中扫描一次,关键问题出现了,由于扫描频率比较频繁,之所以扫描的很频繁是因为U盘随时会拔掉,要在拔掉之前记录下来文件的名字,追加的频繁了,所以文件会增的很大很乱没用了就,所以要记录不重复才行,我也就是到了这里不知道该怎么做了。。。)等U盘拔掉之后就继续十秒扫描一次。。。- @echo off
- if not "%1"=="wkdxz" mshta vbscript:createobject("wscript.shell").run("""%~f0"" wkdxz",vbhide)(window.close)&&exit
- :jianche
- 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:)
- if defined upan (call :zhaodao) else (ping 20 127.0.1>nul && call :jianche)
- :zhaodao
- echo.
- echo %time%>>c:\jilu.txt
- dir /b %upan%\*.cdr>>C:\jilu.txt
- 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命令自己就可以记录了啊- 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://bbs.bathome.net/) |
Powered by Discuz! 7.2 |