Вставьте файл .bat в шоколадный

#chocolatey

Вопрос:

Я пытаюсь создать автономный шоколадный пакет, содержащий файл .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 '..libtest-pkgtools' (C:ProgramDatachocolateylibtest-pkgtools). This usually indicates a missing or moved file.

Упомянутый каталог ( C:ProgramDatachocolateylibtest-pkgtools ) определенно существует и содержит test.bat файл, поэтому упаковка и установка файла .bat сработали. Как таковая, похоже, проблема с прокладкой?

В качестве эксперимента я попытался .ps1 таким же образом запустить скрипт Powershell и получил то же сообщение об ошибке.

Что я здесь упускаю? Спасибо!

Ответ №1:

Проблема -Path в том , что параметр должен содержать полный путь к файлу bat, а не только к файлу $toolsDir , поэтому что-то подобное будет работать:

Install-BinFile -Name 'test.bat' -Path "$toolsDirtest.bat"

Неожиданный вывод заключается в том, что для запуска без ошибок не обязательно, чтобы цель оболочки существовала Install-BinFile .