用于运行cmd.exe内置函数的PowerShell别名语法?

时间:2011-01-20 23:35:55

标签: powershell alias

由于我最近刚从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的正确语法。

4 个答案:

答案 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