gpt4 book ai didi

powershell - 如何在 psake 中调用 exec 到具有可变路径的可执行文件?

转载 作者:行者123 更新时间:2023-12-03 08:17:08 30 4
gpt4 key购买 nike

我似乎无法在我的 psake 部署脚本中正确调用这个可执行文件。

如果我这样做:

exec { "$ArchiverOutputDir\NServiceBus.Host.exe /install" }

它只是输出这个(并且显然没有调用可执行文件 - 只是输出该表达式的值):
c:\ReloDotNet2_ServiceEndpoints\Archiver\NServiceBus.Host.exe /install

但如果我这样做:
exec { c:\ReloDotNet2_ServiceEndpoints\Archiver\NServiceBus.Host.exe /install }

我从可执行文件中获得了预期的输出。

如何在psake中的可执行文件的路径中正确调用带有变量的可执行文件?如果这实际上是 PowerShell 问题,请随时更正问题以反射(reflect)该见解。

最佳答案

经典的 PowerShell 问题。试试这个:

exec { & "$ArchiverOutputDir\NServiceBus.Host.exe" /install }

PowerShell 不仅执行命令,它还计算表达式,例如:
C:\PS> 2 + 2
4
C:\PS> "hello world"
hello world

您在管道开始时提供给 PowerShell 的是一个字符串表达式,它忠实地计算并打印到控制台。通过使用调用运算符 & ,您告诉 PowerShell,以下内容要么是要执行的命令的名称(在字符串中),要么是要执行的脚本块。从技术上讲,您也可以使用 . "some-command-name-or-path" .唯一的区别是对于 PowerShell 命令, &创建一个新的作用域来在 . 中执行命令没有。对于外部 exe,据我所知您使用的是哪个没有区别,但 &通常使用。

关于powershell - 如何在 psake 中调用 exec 到具有可变路径的可执行文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13962703/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com