Пытаетесь превратить функцию с несколькими командами в один псевдоним в powershell? - PullRequest
0 голосов
/ 18 сентября 2018

Вот код и ошибка, которую я получаю:

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

Я также пробовал без линии в отдельных строках (это внутри функции) пробовал только Set-Alias Sheridan CSheridanStruct те же ошибки.И я пытался сделать Set-Alias -Name "Sheridan" -Value CSheridanStruct.Тот же вывод.Команды функций внутри, я уже проверил и работаю и создал каталоги.Мне просто нужно задать псевдоним для всех команд, запускаемых сразу, набрав псевдоним Sheridan в PowerShell ..

1 Ответ

0 голосов
/ 18 сентября 2018

Эта проблема связана с попыткой поместить массив в поле 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
...