内部c:\test\
我有:
和
我只想压缩dir1
,dir2
,file1.txt
和file2.txt
我使用以下脚本压缩选定的文件夹
$YourDirToCompress="C:\test\"
$ZipFileResult=".\result.zip"
$DirToInclude=@("dir1", "dir2")
Get-ChildItem $YourDirToCompress -Directory |
where { $_.Name -in $DirToInclude} |
Compress-Archive -DestinationPath $ZipFileResult -Update
我如何将所选文件(file1.txt
和file2.txt
)添加到最终压缩result.zip
?
理想情况下,我希望一次性进行压缩,这意味着我会传递所选文件和文件夹的列表,然后进行压缩。
答案 0 :(得分:1)
尝试这样的事情:
Get-ChildItem -Path $YourDirToCompress | Where {$_.Name -in $DirToInclude} | Compress-Archive -DestinationPath $ZipfFileResult -Update
Compress-Archrive
能够压缩文件和目录。因此,在此代码中,我们使用Get-ChildItem
而不使用-Directory
标志,该标志将返回$YourDirToCompress
然后我们将这些文件/文件夹传递给Compress-Archive
cmdlet,就像我们之前一样。
假设文件位于$YourDirToCompress
答案 1 :(得分:0)
如果您压缩文件夹,则所有文件和子文件夹也会被压缩。
那么,要压缩已经压缩的文件夹中的特定文件需要做些什么?
您是说这些文件只存在于\dir3
?
如果是这样,你只需使用for循环和if语句。 匹配dir1和dir2然后压缩,然后匹配dir3中的file1和file2然后压缩。