New-Item

创建新项。

语法

New-Item
   [-Path] <String[]>
   [-ItemType <String>]
   [-Value <Object>]
   [-Force]
   [-Credential <PSCredential>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-Item
   [[-Path] <String[]>]
   -Name <String>
   [-ItemType <String>]
   [-Value <Object>]
   [-Force]
   [-Credential <PSCredential>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-Item
   [-Path] <string[]>
   -ConnectionURI <uri>
   [-ItemType <string>]
   [-Value <Object>]
   [-Force]
   [-Credential <pscredential>]
   [-WhatIf]
   [-Confirm]
   [-OptionSet <hashtable>]
   [-Authentication <AuthenticationMechanism>]
   [-CertificateThumbprint <string>]
   [-SessionOption <SessionOption>]
   [-Port <int>]
   [<CommonParameters>]
New-Item
   [[-Path] <string[]>]
   -Name <string>
   [-ItemType <string>]
   [-Value <Object>]
   [-Force]
   [-Credential <pscredential>]
   [-WhatIf]
   [-Confirm]
   [-OptionSet <hashtable>]
   [-Authentication <AuthenticationMechanism>]
   [-CertificateThumbprint <string>]
   [-SessionOption <SessionOption>]
   [-ApplicationName <string>]
   [-Port <int>]
   [-UseSSL]
   [<CommonParameters>]
New-Item
   [-Path] <string[]>
   [-ItemType <string>]
   [-Value <Object>]
   [-Force]
   [-Credential <pscredential>]
   [-WhatIf]
   [-Confirm]
   [-Options <ScopedItemOptions>]
   [<CommonParameters>]
New-Item
   [[-Path] <string[]>]
   -Name <string>
   [-ItemType <string>]
   [-Value <Object>]
   [-Force]
   [-Credential <pscredential>]
   [-WhatIf]
   [-Confirm]
   [-Options <ScopedItemOptions>]
   [<CommonParameters>]

说明

cmdlet New-Item 将创建新项并设置其值。 可创建的项类型取决于项的位置。 例如,在文件系统 New-Item 中创建文件和文件夹。 在注册表中, New-Item 创建注册表项和条目。

New-Item 还可以设置它创建的项的值。 例如,在创建新文件时, New-Item 可以向文件添加初始内容。

示例

示例 1:在当前目录中Create文件

此命令在当前目录中创建名为“testfile1.txt”的文本文件。 点 (“。” Path 参数的值中的 ) 指示当前目录。 Value 参数后面的带引号的文本作为内容添加到文件中。

New-Item -Path . -Name "testfile1.txt" -ItemType "file" -Value "This is a text string."

示例 2:Create目录

此命令在驱动器中创建名为“Logfiles”的 C: 目录。 ItemType 参数指定新项是目录,而不是文件或其他文件系统对象。

New-Item -Path "c:\" -Name "logfiles" -ItemType "directory"

示例 3:Create配置文件

此命令在变量指定的 $profile 路径中创建 PowerShell 配置文件。

可以使用配置文件来自定义 PowerShell。 $profile 是一个自动 (内置的) 变量,用于存储“CurrentUser/CurrentHost”配置文件的路径和文件名。 默认情况下,配置文件不存在,即使 PowerShell 存储其路径和文件名也是如此。

在此命令中 $profile , 变量表示文件的路径。 ItemType 参数指定命令创建文件。 Force 参数允许在配置文件路径中创建文件,即使路径中的目录不存在也是如此。

创建配置文件后,可以在配置文件中输入别名、函数和脚本以自定义 shell。

有关详细信息,请参阅 about_Automatic_Variablesabout_Profiles

New-Item -Path $profile -ItemType "file" -Force

示例 4:Create不同目录中的目录

此示例在“C:\PS-Test”目录中创建新的 Scripts 目录。

新目录项的名称“Scripts”包含在 Path 参数的值中,而不是在 Name 的值中指定。 根据语法,任一种命令形式都是有效的。

New-Item -ItemType "directory" -Path "c:\ps-test\scripts"

示例 5:Create多个文件

此示例在两个不同的目录中创建文件。 由于 Path 采用多个字符串,因此可以使用它创建多个项。

New-Item -ItemType "file" -Path "c:\ps-test\test.txt", "c:\ps-test\Logs\test.log"

示例 6:使用通配符在多个目录中创建文件

cmdlet New-Item 支持 Path 参数中的通配符。 以下命令在 Path 参数中的通配符指定的所有目录中创建一个temp.txt文件。

Get-ChildItem -Path C:\Temp\

Directory:  C:\Temp

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d-----        5/15/2019   6:45 AM        1   One
d-----        5/15/2019   6:45 AM        1   Two
d-----        5/15/2019   6:45 AM        1   Three

New-Item -Path C:\Temp\* -Name temp.txt -ItemType File | Select-Object FullName

FullName
--------
C:\Temp\One\temp.txt
C:\Temp\Three\temp.txt
C:\Temp\Two\temp.txt

cmdlet 在 Get-ChildItem 目录下显示三个 C:\Temp 目录。 使用通配符, New-Item cmdlet 会在当前目录下的所有目录中创建一个 temp.txt 文件。 cmdlet New-Item 输出你创建的项,这些项通过管道传递给 Select-Object 以验证新创建文件的路径。

示例 7:Create指向文件或文件夹的符号链接

此示例创建指向当前文件夹中 Notice.txt 文件的符号链接。

$link = New-Item -ItemType SymbolicLink -Path .\link -Target .\Notice.txt
$link | Select-Object LinkType, Target

LinkType     Target
--------     ------
SymbolicLink {.\Notice.txt}

在此示例中, TargetValue 参数的别名。 符号链接的目标可以是相对路径。 在 PowerShell v6.2 之前,目标必须是完全限定的路径。

从 PowerShell 7.1 开始,现在可以使用相对路径创建到 Windows 上文件夹的 符号链接

示例 8:使用 -Force 参数尝试重新创建文件夹

此示例创建一个文件夹,其中包含一个文件。 然后,尝试使用 -Force创建同一文件夹。 它不会覆盖文件夹,而只是返回创建的文件保持不变的现有文件夹对象。

PS> New-Item -Path .\TestFolder -ItemType Directory
PS> New-Item -Path .\TestFolder\TestFile.txt -ItemType File

PS> New-Item -Path .\TestFolder -ItemType Directory -Force

    Directory: C:\
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----         5/1/2020   8:03 AM                TestFolder

PS> Get-ChildItem .\TestFolder\

    Directory: C:\TestFolder
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----         5/1/2020   8:03 AM              0 TestFile.txt

示例 9:使用 -Force 参数覆盖现有文件

此示例创建一个具有 值的文件,然后使用 重新创建该文件 -Force。 这将覆盖现有文件,如 length 属性所示。

PS> New-Item ./TestFile.txt -ItemType File -Value 'This is just a test file'

    Directory: C:\Source\Test
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----         5/1/2020   8:32 AM             24 TestFile.txt

New-Item ./TestFile.txt -ItemType File -Force

    Directory: C:\Source\Test
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----         5/1/2020   8:32 AM              0 TestFile.txt

注意

New-Item 开关一起使用 -Force 以创建注册表项时,命令的行为与覆盖文件时的行为相同。 如果注册表项已存在,则将用空注册表项覆盖该键以及所有属性和值。

参数

-ApplicationName

这是 WSMan 提供程序提供的动态参数。 WSMan 提供程序和此参数仅在 Windows 上可用。

指定连接中的应用程序名称。 ApplicationName 参数的默认值为 WSMAN

有关详细信息,请参阅 New-WSManInstance

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Authentication

这是 WSMan 提供程序提供的动态参数。 WSMan 提供程序和此参数仅在 Windows 上可用。

指定服务器上要使用的身份验证机制。

有关详细信息,请参阅 New-WSManInstance

Type:AuthenticationMechanism
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CertificateThumbprint

这是 WSMan 提供程序提供的动态参数。 WSMan 提供程序和此参数仅在 Windows 上可用。

指定有权执行此 WSMan 操作的用户帐户 (X509) 的数字公钥证书。 输入证书的证书指纹。

有关详细信息,请参阅 New-WSManInstance

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

提示你在运行 cmdlet 之前进行确认。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ConnectionURI

这是 WSMan 提供程序提供的动态参数。 WSMan 提供程序和此参数仅在 Windows 上可用。

指定 WSMan 的连接终结点。

有关详细信息,请参阅 New-WSManInstance

Type:Uri
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Credential

注意

随 PowerShell 一起安装的任何提供程序都不支持此参数。 若要在运行此 cmdlet 时模拟其他用户或提升凭据,请使用 Invoke-Command

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Force

强制此 cmdlet 创建对现有只读项进行写入的项。 不同提供程序有不同的实现。 即使使用 Force 参数,cmdlet 也无法覆盖安全限制。

不能使用 Force 覆盖现有交接点。 尝试覆盖现有交接点失败,出现“无法删除,因为它不为空”错误。 在创建新接合点之前,必须删除现有接合点。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ItemType

指定提供程序指定的新项的类型。 此参数的可用值取决于所使用的当前提供程序。

如果你的位置在驱动器中 FileSystem ,则允许使用以下值:

  • 文件
  • Directory
  • SymbolicLink
  • 交接点
  • HardLink

注意

在 Windows 上创建 SymbolicLink 类型需要提升管理员身份。 但是,启用开发人员模式Windows 10 (版本 14972 或更高版本) 不再需要提升创建符号链接。

在驱动器中 Certificate ,可以指定以下值:

  • Certificate 提供程序
  • 证书
  • 存储
  • StoreLocation

有关详细信息,请参阅 about_Providers

Type:String
Aliases:Type
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Name

指定新项的名称。 可以在 NamePath 参数值中指定新项的名称,也可以在 NamePath 值中指定新项的路径。 使用 Name 参数传递的项名称是相对于 Path 参数的值创建的。

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Options

这是 别名 提供程序提供的动态参数。 有关详细信息,请参阅 New-Alias

指定别名的 Options 属性的值。

有效值为:

  • None:别名没有约束 (默认值)
  • ReadOnly:别名可以删除,但如果不使用 Force 参数,则不能更改
  • Constant:无法删除或更改别名
  • Private:别名仅在当前范围内可用
  • AllScope:别名将复制到创建的任何新范围
  • Unspecified:未指定选项
Type:ScopedItemOptions
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-OptionSet

这是 WSMan 提供程序提供的动态参数。 WSMan 提供程序和此参数仅在 Windows 上可用。

将一组开关传递到某个服务以修改或优化请求的性质。

有关详细信息,请参阅 New-WSManInstance

Type:Hashtable
Aliases:OS
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

指定新项的位置的路径。 省略 Path 时,默认值为当前位置。 可以在“ 名称”中指定新项的名称,或将其包含在 “路径”中。 使用 Name 参数传递的项名称是相对于 Path 参数的值创建的。

对于此 cmdlet,Path 参数的工作方式与其他 cmdlet 的 LiteralPath 参数类似。 不解释通配符。 所有字符都传递给位置的提供程序。 提供程序可能不支持所有字符。 例如,不能创建包含星号的文件名 (*) 字符。

Type:String[]
Position:0
Default value:Current location
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Port

这是 WSMan 提供程序提供的动态参数。 WSMan 提供程序和此参数仅在 Windows 上可用。

指定要在客户端连接到 WinRM 服务时使用的端口。

有关详细信息,请参阅 New-WSManInstance

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SessionOption

这是 WSMan 提供程序提供的动态参数。 WSMan 提供程序和此参数仅在 Windows 上可用。

为 WS-Management 会话定义一组扩展选项。

有关详细信息,请参阅 New-WSManInstance

Type:SessionOption
Aliases:SO
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseSSL

这是 WSMan 提供程序提供的动态参数。 WSMan 提供程序和此参数仅在 Windows 上可用。

指定应使用安全套接字层 (SSL) 协议来建立与远程计算机的连接。 默认情况下,不使用 SSL。

有关详细信息,请参阅 New-WSManInstance

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Value

指定新项的值。 还可以通过管道将值传递给 New-Item

Type:Object
Aliases:Target
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

显示运行该 cmdlet 时会发生什么情况。 cmdlet 未运行。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

输入

Object

可以通过管道将新项的值传递给此 cmdlet。

输出

DictionaryEntry

创建新环境变量时,cmdlet 返回 DictionaryEntry 对象。

DirectoryInfo

在文件系统中创建新目录时,cmdlet 返回 DirectoryInfo 对象。

FileInfo

在文件系统中创建新文件时,cmdlet 返回 FileInfo 对象。

AliasInfo

创建新别名时,cmdlet 返回 AliasInfo 对象。

FunctionInfo

创建新函数时,cmdlet 返回 FunctionInfo 对象。

PSVariable

创建新变量时,cmdlet 返回 PSVariable 对象。

备注

PowerShell 包含以下别名 New-Item

  • 所有平台:
    • ni

New-Item 旨在处理由任何提供程序公开的数据。 若要列出会话中可用的提供程序,请键入 Get-PsProvider。 有关详细信息,请参阅 about_Providers