• +86 400-9955-698
  • support@vinchin.com
logo
关于我们

技术分享

技术分享 使用PowerShell实现自动备份文件夹

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

2020-09-27

使用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
}
判断路径是否存在,既可以判断目标路径,也可以判断源路径。


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



  • 标签:
  • 技术分享

您可能感兴趣的新闻 换一批

现在下载,可享30天免费试用

立即下载