这是代码和我得到的错误:
function CSheridanStruct {
New-Item -Path "C:\Users\Admininistrator\" -Name "Sheridan" -ItemType "directory" |
New-Item -Path "C:\Users\Admininistrators\Sheridan\" -ItemType "directory" -Name "SYST23551", "Notes"
}
Set-Alias Sheridan CSheridanStruct
Sheridan
New-Item : Cannot convert 'System.Object[]' to the type 'System.String' required by parameter 'Name'. Specified method is not supported. At line:2 char:167 + ... rators\Sheridan\" -ItemType "directory" -Name "SYST23551", "Notes" } + ~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [New-Item], ParameterBindingException + FullyQualifiedErrorId : CannotConvertArgument,Microsoft.PowerShell.Commands.NewItemCommand
我也尝试了在没有单独行的pipline(这在函数内)的情况下尝试仅Set-Alias Sheridan CSheridanStruct
相同的错误。
我尝试做Set-Alias -Name "Sheridan" -Value CSheridanStruct
。
输出相同。我已经检查并工作了功能命令,并创建了目录。我只需要为所有要启动的命令设置一个别名,只需在PowerShell中键入别名Sheridan。
答案 0 :(得分:1)
您遇到的这个问题是试图在 new-item -name 字段中放置一个数组
New-Item -Path "C:\Users\Admininistrators\Sheridan\" -ItemType "directory" -Name "SYST23551", "Notes"
您遇到的错误是由于-名称为“ SYST23551”,“注释”
第二,由于它们之间没有任何关系,因此无需通过管道传递这些命令
这是您脚本的有效版本
function CSheridanStruct {
New-Item -Path "C:\Users\Admininistrator\" -Name "Sheridan" -ItemType "directory"
New-Item -Path "C:\Users\Admininistrator\Sheridan" -Name "SYST23551" -ItemType "directory"
New-Item -Path "C:\Users\Admininistrator\Sheridan" -Name "Notes" -ItemType "directory"
}
Set-Alias Sheridan CSheridanStruct
Sheridan