PowerShell中是否都有可用的CMD命令?

时间:2017-05-17 18:59:03

标签: powershell cmd

与其他问题类似,但是在Powershell中可以使用所有CMD命令吗?简而言之,我可以使用Powershell窗口取代CMD提示,并在同一终端中同时执行CMD工作和Powershell工作吗?

3 个答案:

答案 0 :(得分:7)

那些内置于 cmd.exe命令(例如dirtype 在PowerShell会话中不能直接可调用,但您可以通过cmd /c ... 调用它们; e.g:

PS> cmd /c ver

但是,您会发现大多数此类命令都具有更强大的PowerShell对应功能。
为了简化转换,一些PowerShell命令(称为 cmdlet )具有为其cmd.exe前辈命名的别名(例如,dir别名为{{ 1}};使用Get-ChildItem找出给定名称所指的命令。)

请注意, PowerShell还为外部实用程序提供了卓越的替代功能;例如,PowerShell的Get-Command <name>Select-String的高级替代品 与内置findstr.exe命令不同,可以直接从PowerShell 调用 这样的外部实用程序。

您可以运行cmd.exe来确定给定的命令名称是指内置where.exe <name>命令还是外部实用程序:如果是后者,则为满路径打印。
(此技术适用于cmd.execmd.exe,但在PowerShell中,您必须包含PowerShell扩展名,因为只有.exe表示不同的内容:它是{的别名{1}} cmdlet。)

在所有这些情况下,了解 PowerShell语法的工作方式非常不同非常重要,而您传递的参数将由PowerShell 首先解释

  • Get-Help about_Parsing提供高级概述

  • 值得注意的是, PowerShell的元字符数多于where (更多字符具有特殊的句法含义)。

  • 调用Where-Object或调用外部实用程序时特别感兴趣的是PSv3 + 停止解析符号cmd.exe,它处理剩余的该命令就好像是从cmd /c 调用的;例如: -
    --%

答案 1 :(得分:0)

是的,有点儿。

Powershell有时会对命令使用不同的语法,因此如果您经常在CMD中使用特定命令,则可能需要先快速搜索这些命令。 大多数命令都是相同的。请注意,如果没有具有管理员权限的窗口,就无法运行一堆powershell命令,并且PS窗口不保证它具有这些权限。

Windows 10的新更新取消了普通的CMD窗口而转向PS。这意味着它显示电蓝色,但您可以随时使用默认值或属性中的选项更改它。我相信Win10中的这个变化也意味着他们为我们在PS中为CMD设置了别名,但不要引用我的那个。

答案 2 :(得分:-1)

如果您使用 cmd 命令,它会将 PowerShell 会话转换为命令提示符会话。

此外,如果您需要 Powershell 或命令提示符命令,您可以分别输入 powershellcmd 在任一界面中来回切换。