【发布时间】:2013-11-19 09:13:49
【问题描述】:
我在工作中产生一些自动化任务,我需要压缩某些文件和/或文件夹。 我想要做的是压缩文件夹 1 中的文本文件,其中包含 4 个 txt 文件。
执行此命令会出错,但仍会压缩 txt 文件:
Exception calling "CreateFromDirectory" with "4" argument(s): "The directory name is invalid.
"
At line:15 char:13
+ [System.IO.Compression.ZipFile]::CreateFromDirectory($Source, "$Sour ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
我现在得到的是:
[Reflection.Assembly]::LoadWithPartialName( "System.IO.Compression.FileSystem" )
$includeBaseDirectory = $false
$compressionLevel= [System.IO.Compression.CompressionLevel]::Optimal
$source = "C:\folder1\*"
Get-ChildItem $source -include *.txt |
Foreach {
$Source = $_.fullName
[System.IO.Compression.ZipFile]::CreateFromDirectory ($Source, "$Source.zip",$compressionLevel, $includebasedirectory)
}
另外,如果我想压缩文件夹 1 中的文件夹,我使用 -directory 开关而不是包含。 不会产生任何错误消息。 有什么建议吗?
【问题讨论】:
-
您的源目录名无效。它应该是:“C:\folder1”(不带通配符)
-
没有通配符不会列出文件夹中的txt文件。
-
使用 -filter 代替 -include。包含用于过滤路径。
-
这完全一样。压缩文件,但每个压缩文件都会产生错误
-
编辑:它创建 zip 但不压缩文件
标签: powershell io compression system