0

如果我在 PowerShell 中运行我的命令一切正常。但是,如果我在 cmd 中运行它,它就不起作用。

背景:我将创建一个批处理,该批处理可在每个安装了 iso 的系统上运行,然后运行需要该 iso 的 exe。我想使用批处理而不是 ps1,因为我不熟悉 ps1 签名以及它是否可以在所有系统上运行而没有问题。

对于 PowerShell Mount-DiskImage ((Get-Item -Path ".\" -Verbose).FullName+"\data.iso")

对于 cmd PowerShell Mount-DiskImage ((Get-Item -Path ".\" -Verbose).FullName+"\data.iso")

错误:

Die Zeichenfolge hat kein Abschlusszeichen: ".
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : TerminatorExpectedAtEndOfString
4

2 回答 2

0

\转义可能会导致包含尾随反斜杠的引用目录路径出现问题,因为行尾的右引号将"被转义\"

要保存带有尾部反斜杠的目录路径,(\)需要添加第二个反斜杠来“转义”,例如,而不是"C:\My Docs\"使用"C:\My Docs\\"

资源

于 2020-09-10T08:23:50.863 回答
0

您必须将命令括在大括号中,并在其前面加上与号 ( &) 以执行它并用引号将其括起来:

PowerShell "& {Mount-DiskImage ((Get-Item -Path .\ -Verbose).FullName+"\data.iso")}"

您可以在此处阅读有关如何使用命令行选项调用 PowerShell 的更多信息。

于 2020-09-10T08:42:12.330 回答