Zip文件夹日期为昨天并移动到网络位置

时间:2018-01-04 09:18:52

标签: powershell zipfile

我需要每天运行一个脚本并压缩前一天创建的文件夹。 然后我需要将压缩版本移动到网络位置。 我正在考虑使用7zip进行压缩,因为它安装在服务器上,但如果有更好的方法\ method \ tool,我可以选择替代方案。

以下是其他一些细节。

要压缩的文件夹以这种格式命名:

20171228  
20171229  
20171230  

我需要从

移动压缩版本
D:\usr\sap\gkretail\ucon\dataexchange\export_channel\results\export\EXPORT_SUCCESS

SOL000483\domain.com\GK_Transaction_Archive

到目前为止,我已经成功实现了这一目标,但我认为$yesterdaysfolder变量失败了。

$pathTo7zip = "C:\Users\gustasoh\Desktop\7z1701-extra\x64\7za.exe"
$sourcefolder = "C:\Users\gustasoh\Desktop\7z1701-extra\x64"
$yesterdaysfolder = "(Get-Date).AddDays(-1).ToString('yyyyMMdd')"
$Destination1 = "C:\Users\gustasoh\Desktop\ZIPPED\"

C:\Users\gustasoh\Desktop\7z1701-extra\x64\7za.exe a -tzip *.7zip $sourcefolder\$yesterdaysfolder

# Check destination path
if (Test-Path $Destination1) {
    # then copy
    Copy-Item $Source *.7zip $Destination1
}

1 个答案:

答案 0 :(得分:0)

我终于设法让我的代码正常工作,但我想感谢大家的时间和帮助。在分享精神中,我想我会把它发布在这里,以防它帮助其他人。

Add-Type -AssemblyName 'System.IO.Compression.FileSystem'

$Source = 'C:\7z1701-extra\x64'
$Destination = 'C:\7z1701-extra\x64\ZIPPED'

$d = (get-date).adddays(-1).tostring('yyyyMMdd')
$SourceFolder = Join-Path -Path $Source -ChildPath $d

Write-Verbose "Archiving $SourceFolder"
[IO.Compression.Zipfile]::CreateFromDirectory($SourceFolder, "$Destination\$d.zip")

Move-Item -Path $Destination\*.zip -Destination \\server.domain.cloud\GK_Transaction_Archive