powershell 变量无法在我的脚本中正确引用

问题描述 投票:0回答:1

问候!

首先我想使用powershell生成一个cmd并在其中放入一些命令

[CmdletBinding()]
param (
    [Parameter()]
    [string]
    $ParameterName
)

cmd /c "start cmd /k " $ParameterName

当我输入一些没有空格的提示时效果很好

& 'C:\ex-sys\Program files\dre\dre.ps1' tasklist
,但是当提示带有空格如&

'C:\ex-sys\Program files\dre\dre.ps1' 'F:\git hub\yt-dlp\yt-dlp (27).exe'

在cmd中输出

'F:\git' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

这意味着“F:\git”不是命令或任何可运行的bat ,显然cmd错过了我在powershell中的引用 那么我可以解决这个问题吗

powershell shell batch-file cmd ps1
1个回答
0
投票

更换:

cmd /c "start cmd /k " $ParameterName

与:

Start-Process cmd "/k `"$ParameterName`""

这避免了不必要的

cmd /c
调用,并使用 embedded
"..."
引用
$ParameterName
的值,以确保它被识别为 single 参数,即使它包含空格。

© www.soinside.com 2019 - 2024. All rights reserved.