chocolatey - 在 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 脚本,并得到相同的错误消息。
我在这里想念什么?谢谢!
解决方案
问题是-Path
参数应该具有 bat 文件的完整路径,而不仅仅是 . $toolsDir
,所以这样的事情会起作用:
Install-BinFile -Name 'test.bat' -Path "$toolsDir\test.bat"
令人惊讶的暗示是 shim 目标不需要存在就Install-BinFile
可以正常运行。
推荐阅读
- git - 如何使用本地文件结构更改更新 git 和 github?
- vtk - 如何将“DATASET POLYDATA”vtk 文件转换为“DATASET STRUCTURED_GRID”?
- asp.net - ASPNETCOMPILER 错误 ASPCONFIG: 无法加载文件或程序集
- node.js - Node.js 中 Sass 的目录问题
- splunk - 在 Splunk 中搜索具有动态值的字符串
- sql - 删除引用不在重复查询中的所有值的查询
- python - 使用 pexpect 和多处理时出错?错误“TypError:无法序列化 '_io.TextIOWrapper' 对象”
- java - 为什么在 Spring Boot 2.2 中集成测试的执行时间急剧增加?
- node.js - 使用 multer 存储上传文件链接的正确方法是什么?
- windows - System.PlatformNotSupportedException:“此平台不支持操作。”