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

[文本处理] BAT批处理如何定时复制最新文件?

本帖最后由 qq1050026447 于 2014-6-11 09:46 编辑

系统环境XP32位系统
比如: C盘的A目录下有一群
a.we.fwa.e201406030001.001
a.we.fwa.e201407030001.001
a.we.fwa.e201408050001.001
aefaefea.txt
waefawe4fa.txt
23f23f2f23f.txt
这样的文件
求个程序
每天3点定时复制扩展名为001的文件,(只复制其中日期为最新的,可以判断文件名中的时间来实现,也可以按照系统时间实现)
复制到
\\192.168.1.123\备份   
这个目录下
复制前判断\\192.168.1.123\备份下的文件是否与现在要复制的文件日期一样,如果一样就不用复制,如果日期不一样就复制
复制到\\192.168.1.123\备份  下的文件自动生成当天日期后,在把文件放里边
不要第三方插件
请高手解答

本帖最后由 hlzj88 于 2014-6-9 12:43 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. title 某某定时备份 不许关闭
  4. :bf
  5. rem 下句del是用于测试环境
  6. color 1f
  7. set sj=%time:~0,2%
  8. set /a aa=(60-%time:~3,2%)*60
  9. if %sj% neq 16 (
  10.     color 0f
  11.     echo.
  12.     echo             警告:不要关闭
  13.     echo.
  14.     echo     计划备份时间为每晚3点范围内(会自动归零到00分钟)
  15.     echo.
  16.     echo     某某备份程序 现不在备份时间
  17.     timeout /T %aa% /nobreak
  18. ) else (
  19.         echo.>>%date:~0,4%备份记录.txt
  20.         echo %date% %time% 备份开始>>%date:~0,4%备份记录.txt
  21.         xcopy "c:\a\*.001" "\\192.168.1.123\备份" /d/y/e/k/h/r/c
  22.         ping /n 5 127.1 >nul
  23.         echo %date% !time! 备份结束>>%date:~0,4%备份记录.txt
  24.         ping /n 5 127.1 >nul
  25.         echo.
  26.         echo 备份等待中 不要停止此任务
  27.         timeout /T %aa% /nobreak
  28.     )
  29. goto bf
复制代码
目的,学习批处理

TOP

上面是自己用的临时修改。timeout 自己百度下载。
目的,学习批处理

TOP

Win7系统自带timeout

TOP

求hlzj88 高手 在修改一下代码,可以不用工具吗,直接用XP下的命令,这样省事,还有,时间上,可以用AT命令吗,下午5点,用AT这样方便,因为运行代码后,就可以管理这个程序了。

TOP

求个不要第三方的代码

TOP

可以试试用系统计划任务来调用你的脚本、

TOP

timeout /T %aa% /nobreak   改为ping /n %aa% 127.1>nul
上面的16 改几就是几点开始备份。
at 有时启动自己不成功。(这算是经验)
目的,学习批处理

TOP

本帖最后由 522235677 于 2014-6-9 18:37 编辑
  1. if "%1"=="1" (
  2.   for /f "delims=" %%a in ('dir /b /o-d c:\a\*.001') do copy "%%a" \\192.168.1.123\备份&exit
  3. ) else (
  4.   at 3:00 /every:M,T,W,Th,F,S,Su C:\1.bat 1
  5. )
复制代码
直接执行就行了,打开后会自动添加任务计划,每天三点自动复制文件

TOP

计划任务我更习惯用schtasks
  1. @echo off
  2. more +4 "%~0">"%~dp0Task.bat"
  3. schtasks /create /tn "MyTask" /tr "\"%~dp0Task.bat\"" /st 03:00 /sc daily /ru "" /f
  4. pause & exit/b
  5. @echo off & pushd "C:\A\"
  6. for /f "delims=" %%a in ('dir /a-d /b /o-d *.001') do (
  7.     copy "%%a" "\\192.168.1.123\备份\"
  8.     exit
  9. )
复制代码

TOP

感谢2楼解答,可惜有第三方插件,
感谢9楼522235677 解答,运行成功了,也添加了任务,但是没有把文件复制过去。
感谢10楼apang 解答,运行没有成功,错误:无效参数/选项 - ‘/f’
键入“SCHTASKS /CREATE /?”以了解用法,没有把文件复制过去。

TOP

本帖最后由 apang 于 2014-6-10 11:32 编辑

回复 11# qq1050026447


    这样试:
  1. @echo off
  2. more +4 "%~0">"%~dp0Task.bat"
  3. schtasks /create /tn "MyTask" /tr "\"%~dp0Task.bat\"" /st 03:00:00 /sc daily /ru 用户名 /rp 密码
  4. pause & exit/b
  5. @echo off & pushd "C:\A\"
  6. for /f "delims=" %%a in ('dir /a-d /b /o-d *.001') do (
  7.     xcopy /d /y "%%a" "\\192.168.1.123\备份\"
  8.     exit
  9. )
复制代码
找了台xp试,system账户无法复制网络文件,算了,还是用管理员帐户运行吧
1

评分人数

TOP

apang好给力,哈哈,成功了^_^

TOP

T_T    我反复执行了好几遍发现
A文件夹下的001扩展名的文件,名字不改变的情况下,文件里面还增加了内容,我执行批处理后发现,
把\\192.168.1.123\备份\  
上的同名文件给覆盖了,
虽然覆盖后是最新的文件了,
但是我还想保留原先的啊

TOP

可以复制后按时间建立文件夹,之后放到里面吗?

TOP

返回列表