由于我最近刚从cmd.exe
切换到PowerShell,我常常发现通过调用cmd
来熟悉它们很方便。例如,要做一个'裸'文件列表,这很有效:
PS> cmd /c dir /b
dir1
dir2
file1.txt
我想为此做一个别名,但我无法弄清楚正确的语法。到目前为止,我已经尝试过:
PS> Set-Alias dirb cmd /c dir /b # error (alias not created)
PS> Set-Alias dirb "cmd /c dir /b" # fail (alias doesn't work)
PS> Set-Alias dirb "cmd `"/c dir /b`"" # fail (alias doesn't work)
有什么建议吗?我正在寻找一种调用内置cmd.exe
命令(例如dir
)的通用解决方案。我还想知道如何使用PowerShell cmdlet以正确的方式生成裸输出,但这是目前的次要问题。这个问题是关于从别名调用cmd.exe
的正确语法。
答案 0 :(得分:4)
别名不适用于此类任务。别名只是命令的另一个名称。请改用此功能。
function dirb { cmd /c dir /b }
答案 1 :(得分:3)
我相信你想要的是一个功能,而不是一个别名。例如:
function dirb {
cmd /c dir $args[0] /b
}
在PS提示符下,运行notepad $ profile,将其粘贴到您的个人资料中,然后当您打开PS控制台时它会自动加载,您可以这样做:
dirb c:\ somedir
有关函数的更多信息,请参阅get-help about_functions。
答案 2 :(得分:0)
不幸的是,powershell中的别名不接受参数 - 您需要为此定义一个函数。有关详细信息,
get-help aliases
答案 3 :(得分:0)
为什么你会使用powershell打开命令提示符?这似乎打败了目的。
我更喜欢列出文件的别名只是ls