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_Variables 和 about_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}
在此示例中, Target 是 Value 参数的别名。 符号链接的目标可以是相对路径。 在 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
指定新项的名称。 可以在 Name 或 Path 参数值中指定新项的名称,也可以在 Name 或 Path 值中指定新项的路径。 使用 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 |
输入
可以通过管道将新项的值传递给此 cmdlet。
输出
创建新环境变量时,cmdlet 返回 DictionaryEntry 对象。
在文件系统中创建新目录时,cmdlet 返回 DirectoryInfo 对象。
在文件系统中创建新文件时,cmdlet 返回 FileInfo 对象。
创建新别名时,cmdlet 返回 AliasInfo 对象。
创建新函数时,cmdlet 返回 FunctionInfo 对象。
创建新变量时,cmdlet 返回 PSVariable 对象。
备注
PowerShell 包含以下别名 New-Item
:
- 所有平台:
ni
New-Item
旨在处理由任何提供程序公开的数据。 若要列出会话中可用的提供程序,请键入 Get-PsProvider
。 有关详细信息,请参阅 about_Providers。