牛皮兔

标题: 批处理(.bat)一键备份资料 [打印本页]

作者: mmzznxc    时间: 2020-8-14 10:48
标题: 批处理(.bat)一键备份资料
复制代码到txt 另存为xx.bat 即可
             需要修改call :s 源地址即本机例如D:\XX 目标地址即服务器例如\\server\xx 服务器用户 密码 %output%
改成自己的 例如 call :s D:\XX \\server\xx admin 525252 %output%
undefined只支持一个文件夹,所以把文件放一起
复制前关掉某进程,如不需要删掉那段代码。如果是备份电子文档的话,建议结束Excel和word。PPT和PDF进程。看自己需求。[Bash shell] [color=rgb(51, 102, 153) !important]纯文本查看 [color=rgb(51, 102, 153) !important]复制代码
[backcolor=rgb(27, 36, 38) !important][color=white !important]
[color=white !important]?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

@echo off
setlocal enabledelayedexpansion

rem 生成log文件名
set output=%date:~,4%-%date:~5,2%-%date:~8,2%_%time%.txt
rem 因为windows不允许文件名里有冒号,所以这里把:换成-
set output=%output::=-%
set output=%output: =%

rem 调用函数完成功能,5个参数分别是源目录,目标目录,用户名,密码,log文件名
call :s 源地址即本机例如D:\XX 目标地址即服务器例如\\server\xx 服务器用户 密码 %output%
echo 文件已备份完成,30秒后自动关闭窗口
ping -n 30 127.0.0.1>nul
goto :eof

:s
echo %1 %2 %3 %4 %5
set src_path=%1
set dst_path=%2
set username=%3
set password=%4
rem log生成在目标路径
set log_file=!dst_path!\rizhi\%5

rem 创建目录
md !dst_path!\rizhi

rem 复制前关掉xx1.exe和xx2.exe进程.如用不到的话删掉这段代码.如需备份电子文档那就关掉excl和word进程
taskkill /f /im xx1.exe /im xx2.exe

rem 自动登录局域网电脑(不映射盘),先重启explorer
net use !dst_path! /user:!username! !password!
taskkill /f /im explorer.exe
start explorer.exe
ping -n 10 127.0.0.1>nul

echo 文件备份中..........请骚等
rem 复制前能进行对比,已有的文件一模一样无更新的·不复制。反之替换掉!
(for /f "delims=" %%f in ('dir /b /s /a-d !src_path!') do (
    rem 遍历所有子目录,获得文件%%f,然后将%%f中的原路径替换成目标路径,便于比较文件
    set cur_file="%%f"
    REM call set dst_file=%%cur_file:%src_path%=%dst_path%%%
    set pathb=%%~dpf
    REM call set dst_path=%%pathb:%src_path%=%dst_path%%%
    set dst_path=!pathb:%src_path%=%dst_path%!

    rem 创建子目录
    if not exist !dst_path! (md !dst_path!)

    rem 这里是正式覆盖,并且写入log文件
    REM echo xcopy /d /y !cur_file! !dst_path!
    set need_proc=0
    for /f %%i in ('xcopy /d /y !cur_file! !dst_path!^|findstr "复制了 1 个文件"') do (
        set need_proc=1
    )
    if !need_proc!==1 (echo !cur_file!)
))>"!log_file!"

:eof





这段代码自动备份资料到服务器上。由于某些原因所以不想用软件+不想映射盘+不想保存服务器的用户密码在本机,所以上星期在悬赏区找人定做,然后小改了一下。分享给大家。程序会自动对比,无更新的不复制。只复制新增、或更新的资料、文档。并且在服务器上会生成txt日志。好让你知道备份了那些资料。缺点就是没软件快,文件需要一个个作对比。不太适合服务器上使用,服务器资料多,还是用软件好。这个bat我是用在客户机上的。





https://two.lanzoui.com/iWVZgfjt1nc
批处理加密软件。不用怕用户 密码 泄露
bat和软件需要同一目录下



输入名字(先把名字改为数字或者英文)


然后需要改一个新名字




加密后的效果↑
BaiduShurufa_2020-8-12_15-40-42.jpg (34.11 KB, 下载次数: 1)









欢迎光临 牛皮兔 (http://niupitu.com/) Powered by Discuz! X3.2