使用PowerShell实现自动备份文件夹

使用Powershell实现自动备份文件夹。


1.将多个文件夹,备份到同一个路径下。

将如下代码保存为.ps1文件,右键点击“使用PowerShell运行”。备份时会在DESTINATION_HOME下生成一个格式为yyyyMMdd(当前日期)的文件夹(如果该文件夹不存在的话),然后将所要备份的文件夹复制进yyyyMMdd文件夹。其中-Force参数的含义是强制覆盖yyyyMMdd文件夹中已存在的同名文件。

#Source_Path是数组类型,其中保存的是需要备份的文件夹路径,即源路径。
$Source_Path="C:\Path1","C:\Path2","C:\Path3"

#DESTINATION_HOME中保存的是要备份到的文件夹路径,即目标路径。
$DESTINATION_HOME="D:\Back_up_daily"
$Destination_Path=$DESTINATION_HOME+"\"+(Get-Date).ToString("yyyyMMdd")

#检测目标路径是否存在,如果不存在则新建目标路径。
if (!(Test-Path -Path $Destination_Path))
{
    New-Item -ItemType directory -Path $Destination_Path
}

#进行复制
foreach($Path in $Source_Path)
{
    Copy-Item -Path $Path -Destination $Destination_Path -Recurse -Force
}

以上代码,实现的是将多个文件夹备份到同一路径,有新的文件夹需要备份额时,只需在$Source_Path数组中添加新的值即可。修改、删除,同理。


2.将多个文件夹,备份到多个路径下。

根据上边的代码,再建立几个PowerShell文件,然后将其中的DESTINATION_HOME的值修改一下。有几个目标路径,就建立几个PowerShell文件。


3.自动化运行所有的PowerShell文件。

将所有这些PowerShell文件,假设有test1.ps1,test2.ps1,test3.ps1这三个文件,放在同一个文件夹下,然后在该文件夹下再建立一个PowerShell文件,假设名为all-in-one.ps1,然后在all-in-one.ps1中输入如下命令,保存。以后只需要运行all-in-one.ps1这一个文件即可。把all-in-one.ps1新建快捷方式放到桌面上,每天睡觉前运行一次即可。

PowerShell test1.ps1
PowerShell test2.ps1
PowerShell test3.ps1


4.根据路径是否存在,智能运行PowerShell文件。

举例如下:

需求:如果没有插入移动硬盘,就只备份到本机的另一个目录,否则就在移动硬盘中也备份一份。

方法:首先为了避免插入其他设备时进行不必要的备份,首先插入需要备份到的那个移动硬盘,然后在管理工具-计算机管理-磁盘管理中,将移动硬盘的盘符设置为比较靠后的盘符,假设设为O盘,则此后在该电脑上,每次移动硬盘插入时会自动识别为O盘。此时all-in-one.ps1文件中的代码如下:

$drive="O:\"

PowerShell test1.ps1
PowerShell test3.ps1

if (Test-Path -Path $drive)
{
    PowerShell test2.ps1
}
判断路径是否存在,既可以判断目标路径,也可以判断源路径。


目前仅仅只是复制,其实还可以压缩


附:

我的代码片地址

微软官方PowerShell文档

PowerShell中文博客

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值