与其他问题类似,但是在Powershell中可以使用所有CMD命令吗?简而言之,我可以使用Powershell窗口取代CMD提示,并在同一终端中同时执行CMD工作和Powershell工作吗?
那些被命令建成 cmd.exe(例如dir,type),都 不能直接调用在PowerShell会话,但你可以通过打电话给他们cmd /c ... ; 例如:
PS> cmd /c ver
Run Code Online (Sandbox Code Playgroud)
但是,您会发现大多数此类命令都具有更强大的PowerShell副本.
为了简化转换,一些PowerShell命令(称为cmdlet)具有为其前任命名的别名cmd.exe(例如,dir别名Get-ChildItem;用于Get-Command <name>查找给定名称引用的命令).
请注意,PowerShell还为外部实用程序提供了出色的替代品 ; 例如,PowerShell Select-String是一种更好的替代品findstr.exe.
与内置cmd.exe命令不同,您可以直接从PowerShell 调用此类外部实用程序.
您可以运行where.exe <name>以确定给定的命令名称是指内置cmd.exe命令还是外部实用程序:如果是后者,则打印其完整路径.
(这种技术来自工作cmd.exe和PowerShell,但在PowerShell中,你必须包括.exe扩展名,因为只是where意味着不同的东西:它是一个别名Where-Object.cmdlet的)
在所有这些情况下,了解重要的是PowerShell的语法的作品非常不同,并且你通过将PowerShell中解释的论据第一:
Get-Help about_Parsing提供高级概述.
值得注意的是,PowerShell具有更多的元字符cmd.exe(更多字符具有特殊的语法含义).
调用cmd /c或调用外部实用程序时特别感兴趣的是PSv3 + 停止解析 符号,--%它将命令的其余部分视为已被调用cmd.exe ; 例如:
cmd /c --% echo %windir%
| 归档时间: |
|
| 查看次数: |
2793 次 |
| 最近记录: |