尝试将具有多个命令的函数转换为Powershell中的单个别名?



这是我得到的代码和错误:

function CSheridanStruct {
New-Item -Path "C:UsersAdmininistrator" -Name "Sheridan" -ItemType "directory" |
New-Item -Path "C:UsersAdmininistratorsSheridan" -ItemType "directory" -Name "SYST23551", "Notes"
}
Set-Alias Sheridan CSheridanStruct
Sheridan
新项:无法将"System.Object[]"转换为"System.String"类型。 参数"名称"必需。不支持指定方法。 行:2 字符:167 + ...rators\Sheridan\" -ItemType "directory" -Name "SYST23551", "Notes" } +                                                   ~~~~~~~~~~~~~~~~~~~~ + 类别信息:无效参数:(:) [新项目],参数绑定异常 + 完全限定错误 ID : CannotConvertArgument,Microsoft.PowerShell.Command.NewItemCommand

我也尝试了它,没有单独行上的管道(这是在函数内(尝试了Set-Alias Sheridan CSheridanStruct相同的错误。 我试着做Set-Alias -Name "Sheridan" -Value CSheridanStruct. 相同的输出。其中的函数命令,我已经检查并工作并创建了目录。我只需要为所有命令设置一个别名,以便在PowerShell中键入别名Sheridan,立即启动。

您遇到的这个问题是尝试在新项目 -name字段中放置一个数组

New-Item -Path "C:UsersAdmininistratorsSheridan" -ItemType "directory" -Name "SYST23551", "Notes"

您收到的错误是由于-名称"SYST23551"、"注释">

其次,没有必要通过管道传输这些命令,因为它们彼此无关

这是脚本的工作版本

function CSheridanStruct {
New-Item -Path "C:UsersAdmininistrator" -Name "Sheridan" -ItemType "directory"
New-Item -Path "C:UsersAdmininistratorSheridan" -Name "SYST23551" -ItemType "directory"
New-Item -Path "C:UsersAdmininistratorSheridan" -Name "Notes" -ItemType "directory"
}
Set-Alias Sheridan CSheridanStruct
Sheridan

最新更新