BAT脚本,将文件(文件夹除外 )按修改时间和当前系统时间一致时,拷贝相关文件到指定的共享盘中。有详细的注释!!

::设置关闭批处理回显、设置cmd标题
@echo off & title Copy the file according to the modification date
cd /d %~dp0
setlocal enabledelayedexpansion

::获取当前时间NowDate,格式为202112021323样式
set NowDate=%date:~,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%

:设定原文件的文件路径
SET address1=D:\Software\XXXX

:设定需要存放到的目标共享盘路径
SET address2=\\192.168.15.XXX\XXX

::echo输出语句,当想输出SET的变量值时,需要在变量前后加上%vale%

:共享盘的IP地址
SET IPaddress=\\192.168.15.XXX

:共享盘密码
SET Password=XXXX

:共享盘用户名
SET User=XXX

::连接共享文件
net use "%IPaddress%"  "%Password%" /user:"%User%"


::dir /a-d /b /tw 表示读取所在位置的文件名称为文本格式
for /f "delims=" %%a in ('dir /a-d /b /tw') do (
::这行没看懂,/f是用于解析文件中的内容,delims为切割函数,切割掉=后面所附值的之后的内容,这里的%%a指的是变量,相当于命名的一个变量a
    if not "%%~fa"=="%~f0" (
    	::%%~ta获取日期/时间
        set FileDate=%%~ta
        ::格式化FileDate为上面NowDate同样式%%~ta,标识获取上面文件的修改日期原本的FileDate样式为2022\08\30 16:48,这里的\不占用位置,将FileDate的值格式变为:202208301648类型
        set FileDate=!FileDate:~,4!!FileDate:~5,2!!FileDate:~8,2!!FileDate:~11,2!!FileDate:~14,2!

        ::拿格式化后文件修改时间和当前时间作比较,相同则复制文件到today文件夹下。
       if !FileDate!==!NowDate! xcopy "%%~a" "%address2%"  /k /y /c
    )
)

:echo FileDate=!FileDate!
:echo NowDate=!NowDate!
:这里需要使用!xxx!来进行获取两变量的延迟值,进行查看


:pause

::关闭cmd窗口,想查看输出结果可以将exit改pause,cmd窗口将不进行关闭操作。
exit


上面的脚本使用txt编辑好后,将文件的后缀名改为bat

注意:该bat执行脚本只能放在想要复制的文件夹下,指定目录盘还没有调试出来。

如果为了不每次运行时弹窗,可以使用下面的静默方式运行。

下面的使用txt编辑好后,将文件的后缀名改为VBS

Set shell = Wscript.createobject("wscript.shell")

:下面为bat脚本的绝对地址。
a = shell.run ("C:\Users\xxx.bat",0)

编译好后可以使用windows的任务计划程序进行运行,达到自动运行的效果

 

 

 在该位置可以设定重复的时间和按什么时间进行重复执行程序。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值