PowerShell 7 -如何在Windows上运行命令?

gojuced7  于 2023-06-23  发布在  Shell
关注(0)|答案(1)|浏览(184)

我只想运行一个docker命令,其中包含PowerShell 7脚本中的参数。当我只使用命令时:

if ($isRunning -eq $false) {
   docker run -it --rm -p 8080:8080 -v <some_path> <image_name>
}

但是我需要在这个命令中使用一个变量,所以我将它改为:

& "docker run -it --rm -p 8080:8080 -v $script:myPath\:/usr/local/whatever"

它运行了,但它告诉我 * 术语'docker run -it...'不能被识别为cmdlet的名称... *。PowerShell脚本似乎没有与cmd相同的$PATH环境变量值。
怎么了?

n6lpvg4x

n6lpvg4x1#

以下方法可能有效,将参数作为参数数组传递给docker命令,而不是将所有表达式嵌入到字符串中,该字符串当前失败,因为PowerShell正在尝试查找具有整个表达式(docker run -it ...)名称的命令。

if (-not $isRunning) {
    docker @(
        'run'
        '-it'
        '--rm'
        '-p'
        '8080:8080'
        '-v'
        "$script:myPath\:/usr/local/whatever"
    )
}

相关问题