Вопрос: Может ли Powershell автоматически создавать отдельный архивный файл для каждого объекта, найденного в каталоге?
Фон:
- Каталог с несколькими сотнями файлов в нем (различные типы файлов)
- Мне нужно создать заархивированный архив для каждого из них.
Концепция рабочего процесса:
- Сценарий Powershell указывает на каталог
- Powershell обнаруживает кучу файлов (различные расширения)
- Powershell автоматически сжимает «Виджет».CFG "в.ZIP файл
- Процесс повторяется против каждого другого объекта, найденного в том же каталоге
Среда:
- ОС Windows 7/64 Bit
- Powershell version 5 (Major: 5 Minor: 1 Build: 15363 Редакция: 786)
Это возможно?
Сценарий, который я придумал (ниже), не дает никаких результатов, и я озадачен, почему.
Что у меня так далеко:
$Path = "C:\ziptest"
function Compress-ChildItem {
[CmdletBinding()]
param(
[Parameter(Position = 0, Mandatory, ValueFromPipeline)]
[ValidateNotNull()]
[System.IO.DirectoryInfo[]]
$Path
)
process {
Get-ChildItem -File $Path | ForEach-Object {
$NewName = "{0}-{1}.zip" -f $_.BaseName, ($_.Extension -replace '.')
$CompressionParams = @{
DestinationPath = Join-Path $Path -ChildPath $NewName
Path = $_.FullName
}
Compress-Archive @CompressionParams
}
}
}