上一节主要介绍了Powershell中常见的别名,以及怎么通过别名查看真实的Powershell命令,Powershell别名的命名规范以及如何新建自己的别名(Powershell内置别名不可更改)以及Powershell中兼容性别名,详细内容点击这里


在本节主要包含以下内容。

  1. Powershell命令自动补全功能。

  2. 在Powershell中使用cmd命令。

  3. 总结



Powershell中命令自动补全功能

Powershell命令自动补全的功能也称为Tab扩展,自动补全的功能可以大大提高命令输入的速度和准确度,在Powershell中通过Tab键来使用自动补全的功能。

  • 文件名或路径的自动补全功能

    如在某一路径下,想输入文件名,可以输入部分内容,按Tab键来补全。

PS C:\> cd D:\MyPowerShell
PS D:\MyPowerShell> M<Tab>

按下Tab键时,Powershell会自动将该名称扩展为其找到的第一个匹配项。重复按 Tab 键将逐一显示所有可用选项。上面一条命令执行的结果如下

PS C:\> cd D:\MyPowerShell
PS D:\MyPowerShell> .\Mandatory.ps1

如果想显示之前的选项,可以按Shift+Tab键来切换之前的选项。

  • cmdlet命令自动补全功能

cmdlet 命令的Tab 扩展略有不同。如果要对 cmdlet 名称使用 Tab 扩展,请输入命令名称的第一部分(动词)及其后面的连字符。可以填入名称的更多部分以进行更准确的匹配。例如,如果输入 get-co 然后按 Tab 键,PowerShell 会将其自动扩展为 Get-Command cmdlet(其字母大小写也将更改为标准形式,虽然Powershell命令不区分命令的大小写)。继续按 Tab 键,PowerShell 将使用仅有的另一个匹配 cmdlet 名称 Get-Content 替换上一名称,按Shift+Tab可以切换到上一条命令,即Get-Command。

    可以在同一行上重复使用 Tab 扩展和Shift+Tab扩展。例如,可以通过输入以下命令来对 Get-Content cmdlet 的名称使用 Tab 扩展:

PS> Get-Con<Tab>

    按 Tab 键时,该命令将扩展为:

PS> Get-Content

    继续按 Tab 键时,该命令将扩展为:

PS> Get-Commond

    按Shift+Tab键,又可以切换到上一条命令。

PS> Get-Content

 注意: Tab 扩展的局限之处在于 Tab 始终被解释为尝试完成单词。如果根据命令无法匹配到任何一条合适的命令,Powershell不会出现预期的结果。


在Powershell中使用cmd命令

所有的Windows 命令都可以在Powershell中执行,而且可以在 Powershell 命令提示符下启动具有图形用户界面的 Windows 程序(如记事本,计算器,画图等)。还可以捕获 Windows 程序生成的文本(Windows命令执行的结果),并在 PowerShell 中使用进一步使用该文本内容。

举个例子,在Powershell中使用IPConfig命令。

PS D:\MyPowerShell> ipconfig

Windows IP Configuration

Ethernet adapter 本地连接:

        Connection-specific DNS Suffix  . :
        IP Address. . . . . . . . . . . . : 192.168.1.124
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . : 192.168.25.1


也可以使用 PowerShell cmdlet(如 Select-String)处理 Windows 程序返回的文本。

PS D:\MyPowerShell> ipconfig | Select-String -Pattern 255

        Subnet Mask . . . . . . . . . . . : 255.255.255.0

    上面命令使用管道运算符(|)将 IPConfig 命令的结果发送到 PowerShell的 Select-String cmdlet,Select-String会搜索Window命令程序执行结果的字符串中的文本。上面的命令是查找包含255的内容。

    当 Windows 命令或工具带有参数时,如 Shutdown 的“-r”(重新启动)参数,PowerShell 会将参数传递给该工具而不解释它们。

    需要注意的是,如果该工具使用 PowerShell 保留字或者使用 PowerShell 不熟悉的命令格式,如 Nant 的“-D:debug=false”参数(PowerShell 将此参数解释为两个参数:“-D”和“debug=false”),请用引号将参数括起来,以指示 PowerShell 应该将参数发送给该工具而不进行解释。


总结

通过学习本节,应当掌握以下内容。

  1. 会使用Powershell的命令自动补全功能。

  2. 了解所有的Windows命令都可以在Powershell中执行。