繁体   English   中英

Powershell和7zip-来自多个(子)文件夹的多个文件

[英]Powershell and 7zip - multiple files from multiple (sub)folders

我正在研究一个(非常简单的)powershell脚本,该脚本必须将多个文件(在这种情况下为.bak文件)从多个子文件夹压缩到目标文件夹。

像这样:

从:

f:\\ backup \\ user1 \\ file1.bak
f:\\ backup \\ user2 \\ file2.bak

至:

x:\\ backupfolder \\ users \\ file1.zip
x:\\ backupfolder \\ users \\ file2.zip

脚本:

$path = "f:\backup\"
$dest = "x:\backupfolder\users\"
$mask = "file*.bak"

$days = 1

$files = dir $path -Recurse -Include $mask | where {
    ($_.LastWriteTime -gt (Get-Date).AddDays(-$days).AddHours(-$hours).AddMinutes(-$mins)) -and ($_.psIsContainer -eq $false)
    }

ForEach ($file in $files) 
    {
    7z.exe a -tzip "$dest\$file.name.zip" $file
    }

问题是,在这种情况下,我得到指定的路径无效错误,因为7zip尝试以这种形式创建档案

x:\backupfolder\users\f:\backup\user1\file1.bak.name.zip

如果我尝试这样做:

7z.exe a -tzip "$dest\$_.basename.zip" $file

我得到一个档案x:\\ backupfolder \\ users \\ .basename.zip

我只希望该脚本执行的操作是将文件(file1.bak)压缩到同名的文件(file1.zip)到我告诉它的文件夹中。

我究竟做错了什么??

TYVM。

你近了 试试这个7z.exe a -tzip "$dest\\$($file.basename).zip" $file

采用

7z.exe a -tzip "$dest\$($file.basename).zip" $file

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM