5

这可能吗?我已经尝试过这个博客,但它不起作用。我有一个包含大约 50 个左右doskey宏的宏文件,用于cmd.exe.

我运行类似:

doskey /exename=powershell.exe /macrofile=C:\macrofile.txt

或者

doskey /exename=powershell.exe blah=echo blah

但是尝试该命令blah会出错:

blah :术语“blah”不被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。

但是,如果我列出它们doskey /macros:powershell.exe,它们都在那里。

有没有办法可以在 PowerShell 中创建 50 个别名来映射到这些宏?该Set-Aliascmdlet 没有多大帮助,因为这些命令比调用简单的 PowerShell cmdlet 更复杂。有些帖子建议在 .ps1 脚本中创建函数,但是,只有当我为文件中的 50 个宏中的每一个手动编写 50 个不同的函数时,这才有效。此外,这将涉及维护两个文件 - cmd 的宏文件和将这些文件转换为函数的 PowerShell 脚本。

4

1 回答 1

3

PSReadLine模块(随 PowerShell 5.0 或更高版本提供)与doskey依赖本机控制台输入功能的 不兼容。我在 Windows 10/PowerShell 5 上进行了测试:

PS C:\> Remove-Module PSReadLine
PS C:\> doskey /exename=powershell.exe g=Get-Location
PS C:\> g

Path
----
C:\
于 2017-01-20T01:08:11.087 回答