【问题标题】:Chocolatey Question - Create a zip package of Powershell scripts?Chocolatey 问题 - 创建 Powershell 脚本的 zip 包?
【发布时间】:2020-06-10 03:52:57
【问题描述】:

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

【问题讨论】:

    标签: chocolatey


    【解决方案1】:

    这是 Chocolatey 包的一个非常基本的用例。 (基本上很多“便携式”Chocolatey 包都是这样工作的。)

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

    只需创建一个包含您要部署的内容的 .zip / .7z 文件,然后创建一个 Chocolatey 包,该包利用 Install-ChocolateyZipPackage 帮助函数将该存档解压缩到选择的位置 - 例如 C:/MyStuff。

    nomacs.portable 为例。

    chocolateyInstall.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”被提取到“工具”文件夹 - 很可能是“C:/ProgramData/Chocolatey/lib/nomacs.portable/tools” - 如果您更改“目标” ' 在脚本中的 'C:/MyStuff' 中提取的文件将在那里结束。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-17
      • 1970-01-01
      • 1970-01-01
      • 2015-06-07
      • 2020-12-26
      • 1970-01-01
      • 1970-01-01
      • 2019-05-10
      相关资源
      最近更新 更多