中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求助:判断U盘已插入再Copy硬盘的内容到U盘!在线等
« [1] [2] »
作者:
标题: 求助:判断U盘已插入再Copy硬盘的内容到U盘!在线等 上一主题 | 下一主题
dj0733
初级用户





积分 138
发帖 55
注册 2007-2-2
状态 离线
『楼 主』:  求助:判断U盘已插入再Copy硬盘的内容到U盘!在线等

判断U盘已插入,然后删除U盘里的所有的内容,再Copy硬盘的内容到U盘!

达人们:

我要的是要显示,并且提示删除成功,复制成功!
先要把里面的东西删除,再COPY
要是检测到H:插入Copy 到H:提示H:拷贝成功
要是检测到G:插入Copy 到G:提示G:拷贝成功。
一次性来两个。。就两个全部提示。。
要是没有找U_DISK到就不Copy。。。也不提示。。

因为公司里做MP3,所以每个去CTRL+C 就太繁杂
用一个USB-HUB 来多少个弄多少个。

大侠们,帮帮忙。。。。

[ Last edited by dj0733 on 2007-2-1 at 06:29 PM ]

2007-2-2 07:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dj0733
初级用户





积分 138
发帖 55
注册 2007-2-2
状态 离线
『第 2 楼』:  

最好是后台能运行。。。呵呵。。
还要搞一个计数器。。。

拷贝后提示
已经拷贝X个。。

2007-2-2 07:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
mygoldnet
初级用户





积分 90
发帖 32
注册 2007-1-14
状态 离线
『第 3 楼』:  

我来发一个,改别人的
@echo off
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  d:\mp3\*.* %yidong%\ /y
del d:\t.txt
echo mp3复制到%yidong%成功
存为g.bat

到控制面板手动加入g.bat到计划任务中,2分钟执行一次!

2007-2-2 09:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
anqing
高级用户




积分 859
发帖 413
注册 2006-8-14
状态 离线
『第 4 楼』:  

echo off
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 delims=:" %%i in ('findstr /i "可移动驱动器" d:\t.txt') do @set yidong=%%i&del "%%i:\*.* /s/q/f"
copy  d:\mp3\*.* %yidong%:\ /y


del d:\t.txt
dir %yidong%:\>d:\11.txt
for /f "tokens=1" %%b in ('findstr /i "个文件" d:\11.txt') do (echo 拷贝%%b个文件到u盘!)

请你再试,在线等!

[ Last edited by anqing on 2007-2-2 at 10:32 PM ]

2007-2-2 11:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 5 楼』:  

可以将:

if errorlevel==1 goto end
if errorlevel==0 goto cop
:end
exit
:cop

直接改为:

if errorlevel==1 exit

2007-2-2 13:46
查看资料  发短消息 网志   编辑帖子  回复  引用回复
dj0733
初级用户





积分 138
发帖 55
注册 2007-2-2
状态 离线
『第 6 楼』:  

谢楼上几位...

3楼的好象没有删除....

4楼的测试ing....
好象不行....

执行到:if errorlevel==0 goto cop
报错:此时不应有 “delims=:”
下一句:
for /f "tokens=1" "delims=:" %%i in ('findstr /i "可移动驱动器" d:\t.txt') do @set yidong=%%i&del "%%i:\*.* /s/q/f"

停止不动

2007-2-2 22:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
anqing
高级用户




积分 859
发帖 413
注册 2006-8-14
状态 离线
『第 7 楼』:  

4楼已改,你试试吧

2007-2-2 22:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dj0733
初级用户





积分 138
发帖 55
注册 2007-2-2
状态 离线
『第 8 楼』:  

测试了一下...我在MP3里没有放卡.

C:\>echo off
j: - 可移动驱动器
k: - 可移动驱动器
d:\copy\t.txt
设备未就绪。
已复制         0 个文件。

J:是MP3  K: 是MP3内置的读卡器.

如果我K:没有放卡就报错...

那就放卡吧,,,单步执行..
C:\>for %i in (c d e f g h i j k) do @fsutil fsinfo drivetype %i: 1>>d:\t.txt

C:\>findstr /i "可移动驱动器" d:\t.txt
j: - 可移动驱动器
k: - 可移动驱动器

C:\>if errorlevel 1 goto end

C:\>if errorlevel 0 goto cop

C:\>for /F "tokens=1 delims=:" %i in ('findstr /i "可移动驱动器" d:\t.txt') do @set yidong=%i  & del "%i:\*.* /s/q/f"

C:\>copy  d:\copy\*.* k:\ /y
d:\copy\t.txt
d:\copy\邮件地址.pst
已复制         2 个文件。

C:\>del d:\t.txt

C:\>dir k:\ 1>d:\11.txt

C:\>for /F "tokens=1" %b in ('findstr /i "个文件" d:\11.txt') do (echo 拷贝%b个文件到u盘! )

C:\>(echo 拷贝4个文件到u盘! )
拷贝4个文件到u盘!

却不删除文件,,,也不执行目录拷贝....
再次感谢楼上的兄弟!

2007-2-3 00:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
anqing
高级用户




积分 859
发帖 413
注册 2006-8-14
状态 离线
『第 9 楼』:  

楼主的意思,我不太明白,你的mp3可以插卡,而插卡后,在我的电脑里,有两个盘符是吗?全是可移动的吗?
这样的mp3没有接触过
如果你不插卡的时候,上面的p还达不到,你的要求吗?
我有事,晚上回来看帖!

2007-2-3 02:35
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dj0733
初级用户





积分 138
发帖 55
注册 2007-2-2
状态 离线
『第 10 楼』:  

真不好意思,,因为公司开发新项目....所以不知情不为怪

其实道理是一样的.我拿的是我的手机做试验!因为手机有两个盘符.
全是可移动的,有一个是读卡器的.

我可以不插卡.但是不插卡,也有两个盘符.当然这就有一个未准备.也就是会报错!
我插卡.可是不删除...而且,一CP 就全部都CP上去了~
两个存储器上全部都有~!

我把我的思维说一下吧,
拷贝到MP3本机:
首先,检测可移动磁盘.
然后,可移动B如果没有准备好..忽略,,
删除可移动A里的*.* XcopY 一下.
计数器+1
ECHO 已经成功拷贝到A  

最好是能够后台的.一插入就自动检测..检测到了就CP的那种..而且计数器是永驻内侟的那种..

==================
谢谢.

2007-2-3 03:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dj0733
初级用户





积分 138
发帖 55
注册 2007-2-2
状态 离线
『第 11 楼』:  

顶上去.表沉了!问题还没有解决呢

2007-2-3 06:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 12 楼』:  

  首先,用批处理做监控是要付出很大的代价的,常见的代价就是CPU占用高达100%;
  其次,用批处理中的 fsutil fsinfo drivetype 来判断分区的类型很容易出错,在我的电脑上,就从来没有正确地识别过移动盘,都是把移动盘当作本地的固定盘。
  最后,纯批处理没有控制是否后台运行的专用命令,虽然at可以做到定点监测+后台运行,但是,毕竟不是专门的命令,干起活来总是不太令人满意——我还没试过每分钟设置一个监测的时间点是个什么样的状况,每一秒钟又是何等场面,估计会因计划任务过多而把机子挂掉。

  以上三条,前两条条条致命。批处理的局限性太大了,还是换用其他工具来实现吧。



尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2007-2-3 06:54
查看资料  发短消息 网志   编辑帖子  回复  引用回复
dj0733
初级用户





积分 138
发帖 55
注册 2007-2-2
状态 离线
『第 13 楼』:  

那还是让我自己用那个,.del *.*  再XCOPY的批命令吧!

2007-2-3 07:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
anqing
高级用户




积分 859
发帖 413
注册 2006-8-14
状态 离线
『第 14 楼』:  

bat实现你的功能,确实cpu会付出最大的代价。

2007-2-3 07:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
21yefeng
初级用户





积分 29
发帖 15
注册 2007-2-3
状态 离线
『第 15 楼』:  

学习当中!

2007-2-3 20:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: