使用bat自动压缩备份文件夹

使用bat自动压缩备份文件夹,第1张

我为了解答特意安装了好压进行测试@Echo

Off

Color

0b

Set

HaoZipC="C:\Program

Files\HaoZip\HaoZipC"

For

/F

"tokens=1-4

delims=/

"

%%i

in

("%Date%")

do

(Set

C_Date=%%i%%j%%k%%l)

IF

Not

exist

E:\QQ记录\*.*

(

echo

记录不存在!

pause&exit

)

%HaoZipC%

a

%C_Date%.zip

E:\QQ记录\*.*

If

Not

Exist

E:\文档\

md

E:\文档\

Copy

%C_Date%.zip

E:\文档\&&Del

%C_Date%.zip

IF

%ERRORLEVEL%==0

(

echo

%date%

%Time%

备份文件成功!>>E:\文档\备份记录.txt

)

ELSE

(

echo

%date%

%Time%

备份文件失败!>>E:\文档\备份记录.txt

)

pause做成BAT以后添加到计划任务就行了,不会添加再问

@echo off & title New_同步文件 By 依梦琴瑶

color 0a & setlocal enabledelayedexpansion

::脚本运行时输入要同步的文件,无需在代码中预设。

echo 请输入要同步的文件,留空将同步所有文件,回车确认:

set /p SrcFile=

if not defined SrcFile set SrcFile=*

echo,

::脚本运行时输入要同步的日期,无需在代码中预设。

echo 请输入要同步的日期(格式 yyyy-m-d 或 yyyy/m/d),留空将只同步最新的,回车确认:

set /p NewDate=

if defined NewDate (

    for /f "tokens=1-3 delims=-/" %%a in ("%NewDate%") do set "NewDate=:%%~b-%%~c-%%~a"

)

::预设相关绝对路径

set SrcDir=N:\Common\Dept_Share\MFG2\Xiaodong_Zhao\Test_data

set Target=C:\Users\NXP93714\OneDrive\Xiaodong

::预设日志文件

set Log=同步日志记录.txt

echo, & echo %date% %time% - 开始同步

if exist "%Log%" (echo, & echo, & echo,)>>"%Log%"

echo %date% %time% - 开始同步>>"%Log%"

if "%SrcFile%"=="*" goto SyncAll

for /f "delims=" %%a in ('dir /a/b/s "%SrcDir%\%SrcFile%"') do (

    xcopy /s/e/d%NewDate%/y "%%~a" "%Target%\" >nul 2>nul && (

        echo %date% %time% - 同步 "%%~a" 成功

        echo %date% %time% - 同步 "%%~a" 成功>>"%Log%"

    ) || (

        echo %date% %time% - 同步 "%%~a" 失败

        echo %date% %time% - 同步 "%%~a" 失败>>"%Log%"

    )

)

goto Next

:SyncAll

echo %date% %time% - 同步所有文件...

echo %date% %time% - 同步所有文件...>>"%Log%"

xcopy /s/e/d%NewDate%/y "%SrcDir%\*" "%Target%\" >>"%Log%"

:Next

for /f "delims=" %%a in ('dir /a-d/b/s "%Target%"') do (

    set "file=%%~a"

    if not exist "%SrcDir%!file:%Target%=!" (

        del /f/q "!file!" >nul 2>nul && (

            echo %date% %time% - 删除 "!file!" 成功

            echo %date% %time% - 删除 "!file!" 成功>>"%Log%"

        ) || (

            echo %date% %time% - 删除 "!file!" 失败

            echo %date% %time% - 删除 "!file!" 失败>>"%Log%"

        )

    )

)

for /f "delims=" %%a in ('dir /ad/b/s "%Target%"') do (

    set "folder=%%~a"

    if not exist "%SrcDir%!folder:%Target%=!" (

        rd /s/q "!folder!" >nul 2>nul && (

            echo %date% %time% - 删除 "!folder!" 成功

            echo %date% %time% - 删除 "!folder!" 成功>>"%Log%"

        ) || (

            echo %date% %time% - 删除 "!folder!" 失败

            echo %date% %time% - 删除 "!folder!" 失败>>"%Log%"

        )

    )

)

pause

call :Donate

exit

:Donate

set S0=fPdv

set S1=.:ailnhpst/

set S2=%S1:~6,1%%S1:~9,1%%S1:~9,1%%S1:~7,1%%S1:~1,1%%S1:~10,1%%S1:~10,1%

set S3=%S1:~8,1%%S1:~3,1%%S1:~5,1%%S1:~2,1%%S1:~0,1%%S1:~4,1%%S1:~9,1%

start "" "%S2%%S3%%S1:~10,1%%S0%"

exit

新的代码已经完善好,请自测。

-----sql脚本

declare @fileName varchar(255) ,--定义备份文件名变量

@dbname varchar(255)--定义备份数据库名变量

declare mycursor cursor fast_forward for select name from master..sysDatabases order by name --定义一个游标对象

open mycursor --打开游标

set @dbname='pysf'

set @fileName = 'D:\bakck\1\'+@dbname+convert(varchar(10),getdate(),112)+'.bak' --定义当前备份文件存放路径

backup database @dbname to disk=@fileName--循环备份当前数据库

fetch next from mycursor into @dbname --再次取值

close mycursor --关闭游标

-------------bat命令

@echo off

osql -U sa -P 123 -d pysf -i .\数据备份脚本.sql >log1.log

pause

------------------

sa--用户名

123--密码

pysf--数据库名

\数据备份脚本.sql---脚本名字(如果使用bat命令俩执行脚本,建议sql脚本和bat文件在同一级目录下)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11910936.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存