cmd与Powershell问题

问题描述

如果我在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

解决方法

\转义符可能会引起引用的目录路径包含尾部反斜杠,因为行末尾的引号"将被转义\"

要保存带有尾随反斜杠(\)的目录路径,需要添加第二个反斜杠来“转义转义符” 因此,例如,使用"C:\My Docs\"代替"C:\My Docs\\"

Source

,

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

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

您可以了解更多有关如何使用命令行选项here调用PowerShell的信息。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...