PowerShell 拷贝某段时间内的文件

本文介绍如何利用Powershell脚本自动化Windows系统备份,通过编写简单的脚本来拷贝当天1小时内更改的日志文件到其他目录,并使用Windows任务计划程序定时执行此脚本。

使用 Windows 进行备份,需要备份某一段时间内的文件。但是使用原始的批处理(bat)计算比较麻烦,如之前的文章 forfiles 和 xcopy 在windows下拷贝N天内更改过的文件 。所以寻找了更简单的方法,可以使用 powershell 来计算需要拷贝的文件。脚本编写好后可以使用 Windows 任务计划程序定时执行 powershell 脚本


以下为简单的处理脚本:拷贝当天(0天内)1小时内的日志文件到其他目录中

<#
Get-ExecutionPolicy
Set-ExecutionPolicy Unrestricted

Function:拷贝N天或N小时内的文件
Author:hzc
CreateDate: 2016/01/27
#>

$SourceDir = "D:\日志备份"
$DestinationDir = "E:\备份\Log"
$AddDays = 0	#增加的天数,可正可负
$AddHours = -1	#增加的小时,可正可负
$SourceFileArray = Get-ChildItem -Path $SourceDir -Recurse | Where-Object -FilterScript {($_.LastWriteTime -gt (Get-Date).AddDays($AddDays).AddHours($AddHours))} | Select-Object -ExpandProperty Name

$date = Get-Date
Write-Host "$date 拷贝开始……" 

foreach ( $file in $SourceFileArray ){
$SourcePath = $SourceDir + "\" +$file 
Copy-Item -Path $SourcePath -Destination $DestinationDir

$date = Get-Date
Write-Host "$date 完成:" + $SourcePath
}
$date = Get-Date
Write-Host "$date 拷贝完成!"

其实还可以设置更精确,参考函数:AddYears、AddMonths、AddDays、AddHours、AddMinutes、AddSeconds、AddMilliseconds、AddTicks



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值