使用 doskey 宏在 PowerShell 中设置别名
Set aliases in PowerShell using doskey macros
这可能吗?我试过 this blog,但没有用。
我有一个包含大约 50 个 doskey
宏的宏文件,用于 cmd.exe
.
我 运行 类似:
doskey /exename=powershell.exe /macrofile=C:\macrofile.txt
或
doskey /exename=powershell.exe blah=echo blah
但是尝试命令 blah
给出了一个错误:
blah : The term 'blah' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
但是,如果我用 doskey /macros:powershell.exe
列出它们,它们都在那里。
有没有办法在 PowerShell 中创建 50 个别名来映射到这些宏? Set-Alias
cmdlet 没有太大帮助,因为这些命令比调用简单的 PowerShell cmdlet 更复杂。有些帖子建议在 .ps1 脚本中创建函数,但是,只有当我为文件中的 50 个宏中的每一个宏手动编写 50 个不同的函数时,这才会起作用。此外,这将涉及维护两个文件 - cmd 的宏文件和将这些文件转换为函数的 PowerShell 脚本。
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:\
这可能吗?我试过 this blog,但没有用。
我有一个包含大约 50 个 doskey
宏的宏文件,用于 cmd.exe
.
我 运行 类似:
doskey /exename=powershell.exe /macrofile=C:\macrofile.txt
或
doskey /exename=powershell.exe blah=echo blah
但是尝试命令 blah
给出了一个错误:
blah : The term 'blah' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
但是,如果我用 doskey /macros:powershell.exe
列出它们,它们都在那里。
有没有办法在 PowerShell 中创建 50 个别名来映射到这些宏? Set-Alias
cmdlet 没有太大帮助,因为这些命令比调用简单的 PowerShell cmdlet 更复杂。有些帖子建议在 .ps1 脚本中创建函数,但是,只有当我为文件中的 50 个宏中的每一个宏手动编写 50 个不同的函数时,这才会起作用。此外,这将涉及维护两个文件 - cmd 的宏文件和将这些文件转换为函数的 PowerShell 脚本。
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:\