gpt4 book ai didi

powershell - 在Powershell {}脚本 block 中解释变量

转载 作者:行者123 更新时间:2023-12-02 23:15:06 25 4
gpt4 key购买 nike

我有一个Shell脚本,应该在后台启动.exe:

$strPath = get-location
$block = {& $strPath"\storage\bin\storage.exe" $args}
start-job -scriptblock $block -argumentlist "-f", $strPath"\storage\conf\storage.conf"

在前面的 Question中,我发现我需要绝对路径。但是,如果查看以下命令,则不会解释$ strPath变量:
PS Q:\mles\etl-i_test> .\iprog.ps1 --start1
Start Storage

Id Name State HasMoreData Location Command
-- ---- ----- ----------- -------- -------
37 Job37 Running True localhost & $strPath"\storage\bi...

我怎样才能解决这个问题?

编辑:我知道我需要将路径作为参数传递,怎么办?就像是:
$block = {& $args[0]"\storage\bin\storage.exe" $args[1] $args[2]}
start-job -scriptblock $block -argumentlist $strPath, "-f", $strPath"\storage\conf\storage.conf"

最佳答案

脚本块的内容将在PowerShell.exe的另一个实例(作为作业)中执行,该实例将无法访问您的变量。这就是为什么您需要在Start-Job参数列表中发送它们的原因。发送作业将需要用作参数的所有数据。例如,storage.exe的完整路径。

$path = (Get-Location).Path
$block = {& $args[0] $args[1] $args[2]}

start-job -scriptblock $block -argumentlist `
"$path\storage\bin\storage.exe" `
"-f", `
"$path\storage\conf\storage.conf"

关于powershell - 在Powershell {}脚本 block 中解释变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15769126/

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