标题: [文本处理] 【未解决】请教各位高手,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窗口- @echo off
- for /f "tokens=1*" %%a in ('fsutil fsinfo drives') do (
- for %%c in (%%b) do (fsutil fsinfo drivetype %%c|find "可移动")&&set USBdrive=%%c
- )
- if DEFINED USBdrive (
- copy "d:\AB\生产台账.xls" "%USBdrive%fsd\"
- pause
- ) else (
- if "%1" == "" echo 请插入U盘
- %0 1
- )
复制代码
作者: 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 编辑
- @echo off
- TITLE U盘生产台账--自动同步程序
- for /f "tokens=2 delims==" %%a in ('wmic LogicalDisk where "DriveType='2'" get DeviceID /value') do (
- set DriveU=%%a
- )
- if not exist "%DriveU%\fsd" goto noup
- if exist "%DriveU%\fsd\生产台账.xls" goto yunzj
- copy "d:\AB\生产台账.xls" "%DriveU%\fsd"
- exit
- :yunzj
- for /f "tokens=1-4 delims=/ " %%i in ("%date%") do (set p=%%i.%%j.%%k.)
- for /f "tokens=1-2 delims=:. " %%i in ("%time%") do (set q=%%i.%%j)
- copy "d:\AB\生产台账.xls" "d:\AB\生产台账.%p%%q%.xls"
- goto yunzhijia
-
-
- :yunzhijia
- echo move "d:\AB\生产台账.%p%%q%.xls" "%DriveU%\fsd"
- exit
-
- :noup
- echo 纭之家小提示:
- echo 抱歉,您插入的U盘不对,或没有插入U盘!!请插入有根目录有fsd文件夹的U盘!!
- echo.
- pause
- exit
复制代码
上面会自动识别U盘盘符,并检测U盘根目录下是否有fsd文件夹,如果没有提示重新插入U盘,如果有,直接复制文件
如果发现U盘fsd已有生产台账.xls,就把文件后面舔加时间后缀复制到U盘fsd文件夹里
防止覆盖,因为我们经常会遇到写数据到U盘,突然断电了,写到一半的文件导致文件丢失或覆盖老数据的现像...
另外,一分钟只能运行一次,不然时间文件名是一样的喽,会被覆盖啦
如果需要直接覆盖U盘文件:- @echo off
- TITLE U盘生产台账--自动同步程序
- for /f "tokens=2 delims==" %%a in ('wmic LogicalDisk where "DriveType='2'" get DeviceID /value') do (
- set DriveU=%%a
- )
- if not exist "%DriveU%\fsd" goto noup
- copy "d:\AB\生产台账.xls" "%DriveU%\fsd" /y
- exit
- :noup
- echo 纭之家小提示:
- echo 抱歉,您插入的U盘不对,或没有插入U盘!!请插入根目录有fsd文件夹的U盘!!
- echo.
- pause
- exit
复制代码
注意,以上两个代码都是要U盘根目录里有个fsd 文件夹才会复制文件,也是根据这个文件夹来判断U盘是不是你使用的...
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |