Почему я не могу добавить тип с моей командой 'new-item' в powershell? - PullRequest
1 голос
/ 11 июня 2019

Я новичок в Windows PowerShell. Сегодня я попробовал команду 'new-item', и она должна позволить met выбрать путь и тип.

Сначала я ввел c: \ newpath (в пути [0] :) Тогда я просто нажал Enter (в пути [1]:)

Но затем он создает файл с именем newpath в c: \

Но я хочу добавить тип: каталог. Но он не показывает (Тип :) в терминале.

Что я делаю не так?

1 Ответ

2 голосов
/ 11 июня 2019

Вы можете использовать параметр -ItemType в вашей команде для указания каталога.

New-Item -ItemType Directory -Path C:\NewPath

Объяснение:

Команда New-Item имеет два набора параметров. Набор параметров по умолчанию - pathSet. Для этого набора параметров требуется только один параметр - Path. Так что это никогда не будет побуждать к чему-то большему. Команда ниже перечислит наборы параметров и определения для New-Item.

Get-Command New-Item -ShowCommandInfo

Name          : New-Item
ModuleName    : Microsoft.PowerShell.Management
Module        : @{Name=Microsoft.PowerShell.Management}
CommandType   : Cmdlet
Definition    :
                New-Item [-Path] <string[]> [-ItemType <string>] [-Value <Object>] [-Force] [-Credential
                <pscredential>] [-WhatIf] [-Confirm] [-UseTransaction] [<CommonParameters>]

                New-Item [[-Path] <string[]>] -Name <string> [-ItemType <string>] [-Value <Object>] [-Force]
                [-Credential <pscredential>] [-WhatIf] [-Confirm] [-UseTransaction] [<CommonParameters>]

ParameterSets : {@{Name=pathSet; IsDefault=True; Parameters=System.Management.Automation.PSObject[]}, @{Name=nameSet;
                IsDefault=False; Parameters=System.Management.Automation.PSObject[]}}

Обратите внимание IsDefault=True на хеш-таблицу для pathSet. Если в команде нет параметров, PowerShell попытается разрешить набор параметров по умолчанию, запрашивая обязательные параметры. Код ниже покажет параметры для набора параметров pathSet и их обязательные настройки.

(Get-Command New-Item -ShowCommandInfo).ParameterSets[0].Parameters | select Name,IsMandatory

Name                IsMandatory
----                -----------
Path                       True
ItemType                  False
Value                     False
Force                     False
Credential                False
Verbose                   False
Debug                     False
ErrorAction               False
WarningAction             False
InformationAction         False
ErrorVariable             False
WarningVariable           False
InformationVariable       False
OutVariable               False
OutBuffer                 False
PipelineVariable          False
WhatIf                    False
Confirm                   False
UseTransaction            False

Альтернативный способ вывести информацию о параметрах вместе с соответствующими наборами параметров - (Get-Command New-Item -All).ParameterSets.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...