与其他问题类似,但是在Powershell中可以使用所有CMD命令吗?简而言之,我可以使用Powershell窗口取代CMD提示,并在同一终端中同时执行CMD工作和Powershell工作吗?
答案 0 :(得分:7)
那些内置于 cmd.exe
的命令(例如dir
,type
) 在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.exe
和cmd.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 或命令提示符命令,您可以分别输入 powershell
和 cmd
在任一界面中来回切换。