首页 > 解决方案 > 在 Chocolatey 中填充一个 .bat 文件

问题描述

我正在尝试创建一个自包含的巧克力包,其中包含我想要填充到路径上的 .bat 文件(即我的“可执行文件”)。我的chocolateyinstall.ps1文件包括以下内容:

    $ErrorActionPreference = 'Stop'; # stop on all errors

    $toolsDir = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"

    Install-BinFile -Name 'test.bat' -Path $toolsDir

这会在test.bat.exe安装包时创建文件。但是当我运行 .exe 文件时,我得到了错误:

Cannot find file at '..\lib\test-pkg\tools' (C:\ProgramData\chocolatey\lib\test-pkg\tools). This usually indicates a missing or moved file.

提到的目录(C:\ProgramData\chocolatey\lib\test-pkg\tools)肯定存在并包含该test.bat文件,因此 .bat 文件的打包和安装工作正常。因此,它看起来是垫片的问题?

通过实验,我尝试以.ps1相同的方式填充 Powershell 脚本,并得到相同的错误消息。

我在这里想念什么?谢谢!

标签: chocolatey

解决方案


问题是-Path参数应该具有 bat 文件的完整路径,而不仅仅是 . $toolsDir,所以这样的事情会起作用:

Install-BinFile -Name 'test.bat' -Path "$toolsDir\test.bat"

令人惊讶的暗示是 shim 目标不需要存在就Install-BinFile可以正常运行。


推荐阅读