为什么不能在Powershell中用“ new-item”命令添加类型?

时间:2019-06-11 18:05:15

标签: powershell

我是Windows Powershell的新手。今天,我尝试了“ new-item”命令,应该让它选择一条路径和一种类型。

首先我输入c:\ newpath(在路径[0]中:) 然后我只是按下Enter键(在路径[1]:)

但是随后它在c:\

中创建了一个名为newpath的文件。

但是我要添加type:目录。但是它不会在终端中显示(Type :)。

我在做什么错了?

1 个答案:

答案 0 :(得分:2)

您可以在命令中使用-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。如果没有通过命令提供参数,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