Board logo

标题: [文本处理] 【未解决】请教各位高手,bat指定文件复制到u盘上的问题 [打印本页]

作者: 7016427    时间: 2015-6-2 20:25     标题: 【未解决】请教各位高手,bat指定文件复制到u盘上的问题

本帖最后由 7016427 于 2015-6-3 10:07 编辑

请问各位老师,能否实现把"d:\AB\生产台账.xls"文件,拷贝到 u盘上的“fsd”文件夹下。未检测到u盘时,提示:请插入u盘,再执行!
我的意思是:执行时未检测到u盘,提示:“请插入u盘,再执行!”字样,否则,否则,把"d:\AB\生产台账.xls"文件,拷贝到 u盘上的“fsd”文件夹下。
作者: zhanglei1371    时间: 2015-6-2 22:37

个人思路:
创建个从拼音文件的批处理,如果不存在U盘,则提示,如果存在U盘,则每隔2分钟再计划任务中执行复制的命令。【即将批处理加入计划任务中,每隔2分钟的周期运行一次。】
至于如何获取可移动磁盘,论坛里一搜一大堆代码,就不多说了。
作者: 7016427    时间: 2015-6-3 09:27

回复 2# zhanglei1371
作者: 7016427    时间: 2015-6-3 09:32     标题: [未解决] 请教各位高手,bat指定文件复制到u盘上的问题

[未解决]回复 3# 7016427
我不需要每隔2分钟执行自动执行,执行时手工双击就行了!
作者: Bella    时间: 2015-6-3 09:51

本帖最后由 Bella 于 2015-6-3 10:00 编辑

不用关cmd窗口
  1. @echo off
  2. for /f "tokens=1*" %%a in ('fsutil fsinfo drives') do (
  3.     for %%c in (%%b) do (fsutil fsinfo drivetype %%c|find "可移动")&&set USBdrive=%%c
  4. )
  5. if DEFINED USBdrive (
  6.     copy "d:\AB\生产台账.xls" "%USBdrive%fsd\"
  7.     pause
  8. ) else (
  9.     if "%1" == "" echo 请插入U盘
  10.     %0 1
  11. )
复制代码

作者: 7016427    时间: 2015-6-3 10:06     标题: 【没解决】 请教各位高手,bat指定文件复制到u盘上的问题

【没解决】回复 5# Bella
你好!测试有、没有都提示:插入u盘再执行的结果!
作者: Bella    时间: 2015-6-3 10:24

回复 6# 7016427


    本机测试通过,你没有管理员权限,或者其他原因.
作者: 7016427    时间: 2015-6-3 10:58

回复 7# Bella
我有管理员权限
作者: funken    时间: 2015-6-15 11:04

本帖最后由 funken 于 2015-6-15 11:32 编辑
  1. @echo off  
  2. TITLE U盘生产台账--自动同步程序
  3. for /f "tokens=2 delims==" %%a in ('wmic LogicalDisk where "DriveType='2'" get DeviceID /value') do (  
  4.   set DriveU=%%a
  5. )  
  6. if not exist "%DriveU%\fsd" goto noup
  7. if exist "%DriveU%\fsd\生产台账.xls" goto yunzj
  8. copy "d:\AB\生产台账.xls" "%DriveU%\fsd"
  9. exit
  10. :yunzj
  11. for /f "tokens=1-4 delims=/ " %%i in ("%date%") do (set p=%%i.%%j.%%k.)
  12. for /f "tokens=1-2 delims=:. " %%i in ("%time%") do (set q=%%i.%%j)
  13. copy "d:\AB\生产台账.xls" "d:\AB\生产台账.%p%%q%.xls"
  14. goto yunzhijia
  15. :yunzhijia
  16. echo move "d:\AB\生产台账.%p%%q%.xls" "%DriveU%\fsd"
  17. exit
  18. :noup
  19. echo 纭之家小提示:
  20. echo 抱歉,您插入的U盘不对,或没有插入U盘!!请插入有根目录有fsd文件夹的U盘!!
  21. echo.
  22. pause
  23. exit
复制代码
上面会自动识别U盘盘符,并检测U盘根目录下是否有fsd文件夹,如果没有提示重新插入U盘,如果有,直接复制文件
如果发现U盘fsd已有生产台账.xls,就把文件后面舔加时间后缀复制到U盘fsd文件夹里
防止覆盖,因为我们经常会遇到写数据到U盘,突然断电了,写到一半的文件导致文件丢失或覆盖老数据的现像...
另外,一分钟只能运行一次,不然时间文件名是一样的喽,会被覆盖啦


如果需要直接覆盖U盘文件:
  1. @echo off  
  2. TITLE U盘生产台账--自动同步程序
  3. for /f "tokens=2 delims==" %%a in ('wmic LogicalDisk where "DriveType='2'" get DeviceID /value') do (  
  4.   set DriveU=%%a
  5. )  
  6. if not exist "%DriveU%\fsd" goto noup
  7. copy "d:\AB\生产台账.xls" "%DriveU%\fsd" /y
  8. exit
  9. :noup
  10. echo 纭之家小提示:
  11. echo 抱歉,您插入的U盘不对,或没有插入U盘!!请插入根目录有fsd文件夹的U盘!!
  12. echo.
  13. pause
  14. exit
复制代码
注意,以上两个代码都是要U盘根目录里有个fsd 文件夹才会复制文件,也是根据这个文件夹来判断U盘是不是你使用的...




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