У меня есть структура каталогов с ZIP-файлами, и я хотел бы извлечь их с помощью скрипта.
Мой сценарий до сих пор:
$7zexe = "c:\bin\7za.exe"
$arg = ""
Get-ChildItem -Recurse -Include *.zip |
ForEach-Object { $argout = $_.Directory.Name
$arg = " e `"$_`" -o`"$argout`""
$cmdline = $7zexe, $arg -join ""
$cmdline
Invoke-Expression -command "$cmdline "
}
Но я получаю следующую ошибку
c:\bin\7za.exe e "E:\tmp\the folder\the sub folder\my_big_file.zip" -o"the sub folder"
Invoke-Expression : The string starting:
At line:1 char:86
+ c:\bin\7za.exe e "E:\tmp\the folder\the sub folder\my_big_file.zip" -o"the sub folder <<<< "
is missing the terminator: ".
At x:\mydocs\testscript.ps1:9 char:18
+ Invoke-Expression <<<< -command "$cmdline "
+ CategoryInfo : ParserError: ( :String) [Invoke-Expression], IncompleteParseException
+ FullyQualifiedErrorId : TerminatorExpectedAtEndOfString,Microsoft.PowerShell.Commands.InvokeExpressionCommand
Почему-то похоже, что PowerShell сбрасывает мое закрытие "
.
Я пробовал это с оператором &
, и я также пытался заменить аргументы массивом:
[Array]$arg = "e ", "`"$_`""," -o`"$argout`""