在命令提示符中运行 PowerShell 命令

Marion Paul Kenneth Mendoza 2023年1月30日
  1. 在 PowerShell 中使用调用运算符 &
  2. 在 PowerShell 中的命令提示符内运行 PowerShell.exe
  3. 在 PowerShell 中运行 cmd.exe
在命令提示符中运行 PowerShell 命令

许多旧的命令提示符命令在 PowerShell 脚本环境中工作。Windows PowerShell 环境使用别名从旧环境中传递这些命令。

但是,命令提示符终端中的某些命令在 Windows PowerShell 的脚本环境中不起作用,反之亦然。

本文将讨论在这两种解释器中运行 PowerShell 和遗留命令。

在 PowerShell 中使用调用运算符 &

当我们运行命令行程序时,旧的命令提示符命令将成功运行。

如果我们采用下面的示例语法,在 CMD 中运行它,它将成功运行。

"C:\temp\setup.exe" /s /qn

但是,如果我们使用上面的相同代码段并在 Windows PowerShell 中运行它,我们将收到一个异常错误。

错误背后的原因是 PowerShell 将双引号 "" 视为文字字符串值。语法中附带的参数在任何 PowerShell 本机库中都不存在。

此外,在 PowerShell 中只执行带引号的路径只会输出字符串值,而不是运行可执行文件本身。

"C:\temp\setup.exe"

输出:

C:\temp\setup.exe

为了解决这个问题,我们可以调用命令行开头的 & 符号所代表的 Invocation 运算符来正确运行 Windows PowerShell 中的可执行路径。

& "C:\temp\setup.exe" /s /qn

Windows PowerShell 中的调用运算符& 会将字符串路径视为可执行文件的文字路径。

因此,它将使用随附的命令参数直接执行脚本。

在 PowerShell 中的命令提示符内运行 PowerShell.exe

在这种方法中,我们将扭转局面。我们现在将尝试在命令提示符界面中运行 PowerShell 命令。

例如,如果我们在命令提示符中运行上述代码段,脚本解释器将无法正确读取参数。为了解决这个问题,我们可以用单引号'' 将整个语法括起来。

powershell.exe -noexit "& '"C:\temp\setup.exe" /s /qn"

上例中的 -noexit 参数在命令提示符内运行 cmd 脚本后不会退出 PowerShell 会话。

我们可以运行下面的代码片段来调出 powershell.exe 命令的帮助文档,以获取有关其他函数和参数的更多信息。

powershell.exe /?

在 PowerShell 中运行 cmd.exe

在 PowerShell 中运行 CMD 命令的另一个示例是调用 cmd.exe 应用程序。

添加并执行后,PowerShell 将在 Windows PowerShell 命令提示符内调用命令行界面会话。

cmd.exe /c "C:\temp\setup.exe" /s /qn

/c 参数将执行命令行界面中参数后跟的任何命令。

在上面的示例中,表达式 "C:\temp\setup.exe" /s /qn 将在 cmd.exe 中执行,因为命令在 /c 开关参数之后。

我们可以运行下面的代码片段来调出 cmd.exe 命令的帮助文档,以获取有关其他函数和参数的更多信息。

此外,我们可以在 PowerShell 和 CMD 命令行解释器上运行以下命令。

cmd.exe /?
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

相关文章 - PowerShell Command