找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 25762|回复: 7

[文本处理] 【已解决】批处理如何将以下文件备份到指定路径?

[复制链接]
发表于 2013-8-14 10:37:46 | 显示全部楼层 |阅读模式
已知压缩文件每日生成。
如果拷贝每日最新生成的压缩文件到指定路径?

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2013-8-14 11:10:15 | 显示全部楼层

  1. @echo off
  2. for %%a in (*.rar) do (
  3.     for /f %%b in ("%%~ta") do (
  4.         if "%%b"=="%date:~,10%" copy "%%a" "D:\指定路径"
  5.     )
  6. )
  7. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
lazygc520 + 1 非常感谢!

查看全部评分

 楼主| 发表于 2013-8-14 11:27:01 | 显示全部楼层
apang 发表于 2013-8-14 11:10


测试了不行啊,初始路径的地址怎么体现?
发表于 2013-8-14 17:30:11 | 显示全部楼层
回复 3# lazygc520
  1. @echo off
  2. for /f %%a in ('wmic os get localdatetime^|findstr "^[1-9]"') do set t=%%a
  3. set "re=%t:~,8%\.rar$"
  4. pushd "E:\rar文件所在目录"
  5. for /f "delims=" %%a in ('dir /a-d/b^|findstr /i "%re%"') do (
  6.     copy "%%a" "D:\指定路径"
  7. )
  8. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
lazygc520 + 1 感谢!

查看全部评分

发表于 2013-8-22 13:52:36 | 显示全部楼层
@echo off
setlocal enabledelayedexpansion

:: 下一行 ds=为获取前第几天的日期(可自行修改)
set ds=1

set dy=%date:~,4%
set dm=%date:~5,2%
set dd=%date:~8,2%
echo 当前日期为:%dy%年%dm%月%dd%日

if %dm:~,1%==0 set "dm=!dm:~1!"
if %dd:~,1%==0 set "dd=!dd:~1!"

set /a "feb=^!(%dy%%%4)+28"
if "%dy:~2,2%" equ "00" set/a "feb=!feb!-1+^!(%dy:~,2%%%4)"

set/a "dd-=%ds%"

if %dd% gtr 0 goto ok
:tyt
set n=0
set/a dm-=1
if !dm! equ 0 set/a "dy=%dy%-1,dm=0+12"
for %%a in (31 %feb% 31 30 31 30 31 31 30 31 30 31) do (
    set/a n+=1
    if !n! equ %dm% set/a "dd=!dd!+%%a")
if %dd% leq 0 goto tyt

k
set/a "ymd=%dy%*10000+%dm%*100+%dd%"
echo.
echo 前%ds%天的日期是%ymd:~,4%年%ymd:~4,2%月%ymd:~6,2%日
echo.

rem 同步rar
if not exist 原路径\*%ymd:~,4%%ymd:~4,2%%ymd:~6,2%.rar  (
             xcopy /y/d 原路径\*%ymd:~,4%%ymd:~4,2%%ymd:~6,2%.rar  目的路径
            ) else ( echo !ymd:~,4!-!ymd:~4,2!-!ymd:~6,2!  RAR exist )
echo --end--
pause >nul
exit
 楼主| 发表于 2013-8-23 09:00:25 | 显示全部楼层
回复  lazygc520
apang 发表于 2013-8-14 17:30


这个是取当天的,如果取前一天的日期如何取?


D:\Label_Barcode\CvtBarcodeSystem\backup>for /F %a in ('wmic os get localdateti
e|findstr "^[1-9]"') do set t=%a

D:\Label_Barcode\CvtBarcodeSystem\backup>set t=20130823085506.484000+480

D:\Label_Barcode\CvtBarcodeSystem\backup>set "re=20130823\.rar$"

D:\Label_Barcode\CvtBarcodeSystem\backup>pushd "D:\Label_Barcode\CvtBarcodeSyst
m\dbbakup\"

D:\Label_Barcode\CvtBarcodeSystem\dbbakup>for /F "delims=" %a in ('dir /a-d/b|f
ndstr /i "20130823\.rar$"') do (copy "%a" "X:\database backup" )

D:\Label_Barcode\CvtBarcodeSystem\dbbakup>pause
Press any key to continue . . .
 楼主| 发表于 2013-8-23 09:00:49 | 显示全部楼层
@echo off
setlocal enabledelayedexpansion

:: 下一行 ds=为获取前第几天的日期(可自行修改)
set d ...
juan1923 发表于 2013-8-22 13:52


代码直接报错。
发表于 2013-8-23 10:53:02 | 显示全部楼层
本帖最后由 apang 于 2013-8-23 10:57 编辑

回复 6# lazygc520


    好吧。。。
  1. @echo off
  2. %1mshta vbscript:createobject("wscript.shell").run("""%~0"" : "^&year(date-1)*10000+month(date-1)*100+day(date-1))(window.close)&exit/b

  3. pushd "D:\Label_Barcode\CvtBarcodeSystm\dbbakup"
  4. copy "*_%2.rar" "X:\database backup"
  5. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
lazygc520 + 1 感谢回复!

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 00:27 , Processed in 0.018894 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表