在powershell中压缩同名文件
Compress files with same name in powershell
我有一个包含超过 1000 个文件扩展名的文件夹。
这是我的文件样本。
- AFG.cpg
- AFG.dbf
- AFG.prj
- AFG.sbn
- AFG.sbx
- AFG。 shp
- AFG.shx
- AFG.cpg
- AGO.dbf
- AGO.prj
- AGO.sbn
- AGO.sbx
- 前。 shp
- AGO.shx
我想按前3个字母压缩。对于示例,我希望获得两个 zip 文件,一个用于 AFG.zip,一个用于 AGO.zip。
我能够使用以下方法压缩一个文件,但生成的文件夹 returns 的目录名称为“countries”而不是文件名称:
$compress = @{
LiteralPath= "C:\Countries"
CompressionLevel = "Fastest"
DestinationPath = "C:\Countries\Draft.Zip"
}
Compress-Archive @compress
我还尝试了以下方法来对文件进行分组并进行压缩:
Get-ChildItem C:\Countries |
Group-Object -Property { $_.Name.Substring(0, 3) } |
% { Compress-Archive -Path $_.Group -DestinationPath "$($_.Name).zip" }
但我收到以下错误:
[ERROR] Compress-Archive : The path 'AFG.cpg' either does not exist or is not a valid file system
path.
[ERROR] At line:3 char:9
+ % { Compress-Archive -Path $_.Group -DestinationPath "$($_.Name). ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (AFG.cpg:String) [Compress-Archive], InvalidO
perationException
+ FullyQualifiedErrorId : ArchiveCmdletPathNotFound,Compress-Archive
我认为错误与第三行有关:> { Compress-Archive -Path $.Group -DestinationPath "$($.Name).zip" } ,但不确定如何修复它。我还尝试了一些其他代码来执行此操作,因为这是一个很受欢迎的问题,但它们似乎不起作用。我刚开始为此使用 powershell,感谢您的帮助。
我正在使用 powershell x86。
感谢@guiwhatsthat 的评论,我能够压缩我的每个文件。这是固定代码:
Get-ChildItem C:\Folder |
Group-Object -Property { $_.Name.Substring(0, 3) } |
% { Compress-Archive -Path $_.Group.FullName -DestinationPath "$($_.Name).zip" }
我有一个包含超过 1000 个文件扩展名的文件夹。
这是我的文件样本。
- AFG.cpg
- AFG.dbf
- AFG.prj
- AFG.sbn
- AFG.sbx
- AFG。 shp
- AFG.shx
- AFG.cpg
- AGO.dbf
- AGO.prj
- AGO.sbn
- AGO.sbx
- 前。 shp
- AGO.shx
我想按前3个字母压缩。对于示例,我希望获得两个 zip 文件,一个用于 AFG.zip,一个用于 AGO.zip。
我能够使用以下方法压缩一个文件,但生成的文件夹 returns 的目录名称为“countries”而不是文件名称:
$compress = @{
LiteralPath= "C:\Countries"
CompressionLevel = "Fastest"
DestinationPath = "C:\Countries\Draft.Zip"
}
Compress-Archive @compress
我还尝试了以下方法来对文件进行分组并进行压缩:
Get-ChildItem C:\Countries |
Group-Object -Property { $_.Name.Substring(0, 3) } |
% { Compress-Archive -Path $_.Group -DestinationPath "$($_.Name).zip" }
但我收到以下错误:
[ERROR] Compress-Archive : The path 'AFG.cpg' either does not exist or is not a valid file system
path.
[ERROR] At line:3 char:9
+ % { Compress-Archive -Path $_.Group -DestinationPath "$($_.Name). ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (AFG.cpg:String) [Compress-Archive], InvalidO
perationException
+ FullyQualifiedErrorId : ArchiveCmdletPathNotFound,Compress-Archive
我认为错误与第三行有关:> { Compress-Archive -Path $.Group -DestinationPath "$($.Name).zip" } ,但不确定如何修复它。我还尝试了一些其他代码来执行此操作,因为这是一个很受欢迎的问题,但它们似乎不起作用。我刚开始为此使用 powershell,感谢您的帮助。
我正在使用 powershell x86。
感谢@guiwhatsthat 的评论,我能够压缩我的每个文件。这是固定代码:
Get-ChildItem C:\Folder |
Group-Object -Property { $_.Name.Substring(0, 3) } |
% { Compress-Archive -Path $_.Group.FullName -DestinationPath "$($_.Name).zip" }