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

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

已知压缩文件每日生成。
如果拷贝每日最新生成的压缩文件到指定路径?
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

  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

评分人数

TOP

apang 发表于 2013-8-14 11:10


测试了不行啊,初始路径的地址怎么体现?

TOP

回复 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

评分人数

TOP

@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

TOP

回复  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 . . .

TOP

@echo off
setlocal enabledelayedexpansion

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


代码直接报错。

TOP

本帖最后由 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

评分人数

TOP

返回列表