如果我在PowerShell中运行命令,一切都很好。但如果我在cmd中运行它,它就不起作用。
背景:我将创建一个批处理,适用于每个装载iso的系统,然后运行需要该iso的exe。我想使用批处理而不是ps1,因为我不熟悉ps1签名,如果它在所有系统上运行都没有问题。
对于PowerShellMount-DiskImage ((Get-Item -Path "." -Verbose).FullName+"data.iso")
对于cmdPowerShell Mount-DiskImage ((Get-Item -Path "." -Verbose).FullName+"data.iso")
错误:
Die Zeichenfolge hat kein Abschlusszeichen: ".
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : TerminatorExpectedAtEndOfString
转义可能会导致包含尾部反斜杠的带引号目录路径出现问题,因为行末尾的右引号
"
将被转义为"
。
若要使用尾部反斜杠()
保存目录路径,则需要添加第二个反斜杠以"转义"因此例如使用"C:My Docs\"
而不是"C:My Docs"
源
您必须将命令括在大括号中,在其前面加上一个与号(&
(才能执行命令,并用引号括起来:
PowerShell "& {Mount-DiskImage ((Get-Item -Path . -Verbose).FullName+"data.iso")}"
您可以在此处阅读有关如何使用命令行选项调用PowerShell的更多信息。