在 PowerShell 中,是否可以创建名称中包含空格的别名?

Mic*_*ael 1 powershell

我想为 做rm -rf一个别名Remove-Item,因为我在使用 PowerShell 时总是不小心输入它。

我猜也许我可以做这样的事情,但那行不通。

Set-Alias -name 'rm -rf' -value Remove-Item
Run Code Online (Sandbox Code Playgroud)

mar*_*sze 5

您还可以删除默认别名,然后将其替换为自定义函数。

# remove default alias
if (Test-Path Alias:rm) {Remove-Item Alias:rm}

# custom function for 'rm'
function rm {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory = $false)]
        [switch]$rf,
        [Parameter(Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Path
    )
    Process {
        Remove-Item -Path $Path -Recurse:$rf -Force:$rf
    }
}
Run Code Online (Sandbox Code Playgroud)

然后像这样调用它:

rm -rf "C:\Temp\dir"
Run Code Online (Sandbox Code Playgroud)

当然,到目前为止,此函数还没有 的全部功能Remove-Item,但您可以根据需要对其进行扩展。

注意:即使这在短期内“解决”了您的问题,您也不应该恢复到这些类型的解决方法。最好习惯实际的 PowerShell 命令和语法,否则迟早会遇到更多问题。

  • 是的 - 这或者创建一个名为 `rm` 的代理函数,其自定义参数 `rf` 对应于 `-Recurse -Force`。 (3认同)
  • 如果我不是太忙,我会在午休时研究一下。 (2认同)