[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 请教一个备份指定文件名的批处理文件

请教一个备份指定文件名的批处理文件,我想实现这么一个操作:

我们的一个自动采集学校体育成绩的软件,用户安装的时候不一定选择会按在哪个盘符下,也不知道会不会改路径,但有个相同点就是,每次运行软件操作的时候,软件会自动将今天采集到的成绩放在一个有规律的目录名(6位数字,不同学校不同的年级来用,数字格式不同,是由学校代码和班级代码决定的,贸然看上去像随机的)的目录下,文件名是studb.mdb,第二天再采集成绩的时候,还是读写这个文件,新成绩还是写入这个文件中。

我的想法是这样的,能不能写一个批处理文件,然后我把它拷到我的移动硬盘上,运行的时候,不管软件装在哪个分区中,自动将在电脑硬盘各分区中搜索到的保存着的studb.mdb文件的目录拷到我U盘(移动硬盘)的固定位置就行,如果移动硬盘上已经存在,则替换掉当前的studb.mdb文件,因为它的目录名是不重复的,因此我想直接复制这个目录应该不会被替换乱了。
因为有的老师们在安装这个软件的时候太乱,也有改路径的,也有改盘符的,有的甚至登录WINDOWS的时候选自己那个用户名,又装一次。

要点:
1、生成的成绩文件studb.mdb文件会备份到一个目录名下,目录名不同,但是文件名是固定的,都是studb.mdb,不一定位于哪个分区,而且有可能会有好几个。
2、在移动硬盘上运行这个批处理的时候,自动搜索硬盘各分区,然后直接将搜到的保存着studb.db这个文件名的父目录复制到移动硬盘上“全部成绩备份”这个目录中就行。电脑中可能有多个包含着studb.db的文件夹,但目录名是不一样的,不同学校不同年级的都不同。

[ 本帖最后由 wfzzx 于 2009-8-27 17:13 编辑 ]

  1. @echo off
  2. set Drives=c d e f g h i j k l m n o p q r s t u v w x y z
  3. set Drives=%Drives: =: %:
  4. call set Drives=%%Drives:%~d0=%%
  5. set "Dest=%~d0\全部成绩备份"
  6. if not exist "%Dest%" md "%Dest%"
  7. for %%d in (%Drives%) do (
  8.     if exist %%d (
  9.         cd /d %%d\
  10.         cls
  11.         echo 正在搜索 %%d\ 盘...
  12.         for /r %%a in ("studb.mdb?") do (
  13.             if /i "%%~nxa"=="studb.mdb" (
  14.                 for %%b in ("%%a\..") do (
  15.                     xcopy "%%~dpa*" "%Dest%\%%~nxb" /eciqhry
  16. )))))
复制代码
1

评分人数

TOP

楼上tireless兄,首先感谢你的快捷回复,我测试了一下,完全满足我的要求,十分感谢并认真学习之,不懂之处,再来求教。

TOP

返回列表