我需要每天运行一个脚本并压缩前一天创建的文件夹。 然后我需要将压缩版本移动到网络位置。 我正在考虑使用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
}
答案 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