问候!
首先我想使用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中的引用 那么我可以解决这个问题吗
更换:
cmd /c "start cmd /k " $ParameterName
与:
Start-Process cmd "/k `"$ParameterName`""
这避免了不必要的
cmd /c
调用,并使用 embedded "..."
引用 $ParameterName
的值,以确保它被识别为 single 参数,即使它包含空格。