Распаковка.zip файла
PARAM (
[string] $SourceZipPath, #= "X:\Somepath\Full\Of\Zipfiles",
[string] $DestinationPath #= "X:\Somepath\to\extract\to"
)
$ErrorActionPreference = "Stop"
$Shell = New-Object -com Shell.Application
$ZipFiles = Get-Childitem $SourceZipPath -Recurse | % {& "C:\Program Files\7-Zip\7z.exe" "x" $_.fullname "-o" $DestinationPath} -Include *.ZIP
Пожалуйста, предложите исправление в приведенном выше коде, когда я пытаюсь запустить его, выдает следующую ошибку:
ForEach-Object : Cannot bind parameter 'RemainingScripts'. Cannot convert the "-Include" value of type "System.String" to type "System.Management.Automation.ScriptBlock".
At C:\Users\******\Desktop\Zip****Extractor-v0.6.ps1:11 char:53
-Recurse | % {& "C:\Program Files\7-Zip\7z.exe" "x" "-o" $Destinatio ...
+ CategoryInfo:InvalidArgument:(:)[ForEach-Object], ParentContainsErrorRecordException
+FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.ForEachObjectCommand
1 ответ
Как упоминалось в 4c74356b41, вы должны поставить -Include
параметр к Get-ChildItem
командлет:
Param
(
[string] $SourceZipPath, #= "X:\Somepath\Full\Of\Zipfiles",
[string] $DestinationPath #= "X:\Somepath\to\extract\to"
)
$ErrorActionPreference = "Stop"
$Shell = New-Object -com Shell.Application
$ZipFiles = Get-Childitem $SourceZipPath -Include *.ZIP -Recurse |
ForEach-Object {
& "C:\Program Files\7-Zip\7z.exe" "x" $_.fullname "-o" $DestinationPath
}