巧克力问题 - 创建Powershell脚本的zip包?



我有一些Powershell脚本,其中包含一些关联的文件,没有可执行文件。 如果我能说运行像 Choco install MyStuff 这样的命令,安装将创建一个名为 C:\MyStuff 的文件夹并将 Powershell 脚本复制到该文件夹中,那就太好了。 很简单,但想知道是否可以用 Choco 做到这一点。 感谢您的任何建议!

这是巧克力包装的一个非常基本的用例。(基本上很多"便携式"巧克力包装都是这样工作的。

我建议您查看choco new命令提供的帮助 - 您最终会得到很多有关如何开始创建自定义包的信息和提示。

只需创建一个包含要部署的内容的 .zip/.7z 文件,并创建一个 Chocolatey 包,该包利用Install-ChocolateyZipPackage帮助程序功能将该存档提取到所选位置 - 例如 C:/MyStuff。

参见nomacs.portable作为示例。

巧克力安装.ps1

$ErrorActionPreference = 'Stop'
if ((Get-OSArchitectureWidth 32) -or ($env:chocolateyForceX86 -eq 'true')) {
throw "This package doesn't support 32bit architecture"
}
$fileName  = 'nomacs-portable-win.zip'
$toolsPath = Split-Path $MyInvocation.MyCommand.Definition
$zip_path = "$toolsPath$fileName"
Get-ChildItem $toolsPath* | Where-Object { $_.PSIsContainer } | Remove-Item -Force -Recurse
$packageArgs = @{
PackageName  = 'nomacs.portable'
FileFullPath = $zip_path
Destination  = $toolsPath
}
Get-ChocolateyUnzip @packageArgs
Remove-Item $zip_path -ea 0

在这种情况下,文件"nomacs-portable-win.zip"被解压缩到"tools"文件夹中 - 很可能是"C:/ProgramData/Chocolatey/lib/nomacs.portable/tools" - 如果您将脚本中的"目的地"更改为"C:/MyStuff",则提取的文件将在那里结束。

最新更新