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:在当前目录中创建文件
此命令在当前目录中创建名为“testfile1.txt”的文本文件。 点 (“。” Path 参数的值中的) 指示当前目录。 Value 参数后面的带引号的文本作为内容添加到文件中。
New-Item -Path . -Name "testfile1.txt" -ItemType "file" -Value "This is a text string."
示例 2:创建目录
此命令在驱动器中创建名为“Logfiles”的 C:
目录。 ItemType 参数指定新项是目录,而不是文件或其他文件系统对象。
New-Item -Path "c:\" -Name "logfiles" -ItemType "directory"
示例 3:创建配置文件
此命令在变量指定的 $profile
路径中创建 PowerShell 配置文件。
可以使用配置文件来自定义 PowerShell。 $profile
是一个自动 (内置的) 变量,用于存储“CurrentUser/CurrentHost”配置文件的路径和文件名。 默认情况下,配置文件不存在,即使 PowerShell 存储其路径和文件名也是如此。
在此命令中 $profile
, 变量表示文件的路径。 ItemType 参数指定命令创建文件。 Force 参数允许在配置文件路径中创建文件,即使路径中的目录不存在也是如此。
创建配置文件后,可以在配置文件中输入别名、函数和脚本来自定义 shell。
有关详细信息,请参阅 about_Automatic_Variables 和 about_Profiles。
New-Item -Path $profile -ItemType "file" -Force
示例 4:在不同的目录中创建目录
此示例在“C:\PS-Test”目录中创建新的 Scripts 目录。
新目录项的名称“Scripts”包含在 Path 参数的值中,而不是在 Name 的值中指定。 根据语法,任一种命令形式都是有效的。
New-Item -ItemType "directory" -Path "c:\ps-test\scripts"
示例 5:创建多个文件
此示例在两个不同的目录中创建文件。 由于 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:创建指向文件或文件夹的符号链接
此示例创建指向当前文件夹中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 |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Authentication
这是 WSMan 提供程序提供的动态参数。 WSMan 提供程序和此参数仅在 Windows 上可用。
指定服务器上要使用的身份验证机制。
有关详细信息,请参阅 New-WSManInstance。
Type: | Microsoft.WSMan.Management.AuthenticationMechanism |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-CertificateThumbprint
这是 WSMan 提供程序提供的动态参数。 WSMan 提供程序和此参数仅在 Windows 上可用。
指定有权执行此 WSMan 操作的用户帐户 (X509) 的数字公钥证书。 输入证书的证书指纹。
有关详细信息,请参阅 New-WSManInstance。
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Confirm
提示你在运行 cmdlet 之前进行确认。
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ConnectionURI
这是 WSMan 提供程序提供的动态参数。 WSMan 提供程序和此参数仅在 Windows 上可用。
指定 WSMan 的连接终结点。
有关详细信息,请参阅 New-WSManInstance。
Type: | Uri |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Credential
注意
随 PowerShell 一起安装的任何提供程序都不支持此参数。 若要在运行此 cmdlet 时模拟其他用户或提升凭据,请使用 Invoke-Command
。
Type: | PSCredential |
Position: | Named |
Default value: | Current user |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Force
强制此 cmdlet 创建对现有只读项进行写入的项。 不同提供程序有不同的实现。 即使使用 Force 参数,cmdlet 也无法覆盖安全限制。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
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 |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
指定新项的名称。 可以在 “名称 ”或“ 路径” 参数值中指定新项的名称,也可以在 “名称 ”或“ 路径 ”值中指定新项的路径。 使用 Name 参数传递的项名称是相对于 Path 参数的值创建的。
Type: | String |
Position: | Named |
Default value: | None |
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 |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-OptionSet
这是 WSMan 提供程序提供的动态参数。 WSMan 提供程序和此参数仅在 Windows 上可用。
将一组开关传递到某个服务以修改或优化请求的性质。
有关详细信息,请参阅 New-WSManInstance。
Type: | Hashtable |
Aliases: | OS |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Path
指定新项的位置的路径。 默认值为省略 Path 时的当前位置。 可以在“名称 ”中指定新项的名称,或将其包含在 “路径”中。 使用 Name 参数传递的项名称是相对于 Path 参数的值创建的。
对于此 cmdlet, Path 参数的工作方式与其他 cmdlet 的 LiteralPath 参数类似。
不解释通配符。 所有字符都传递给位置的提供程序。 提供程序可能不支持所有字符。 例如,不能创建包含星号的文件名 (*
) 字符。
Type: | String[] |
Position: | 0 |
Default value: | Current location |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Port
这是 WSMan 提供程序提供的动态参数。 WSMan 提供程序和此参数仅在 Windows 上可用。
指定要在客户端连接到 WinRM 服务时使用的端口。
有关详细信息,请参阅 New-WSManInstance。
Type: | Int32 |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-SessionOption
这是 WSMan 提供程序提供的动态参数。 WSMan 提供程序和此参数仅在 Windows 上可用。
为 WS-Management 会话定义一组扩展选项。
有关详细信息,请参阅 New-WSManInstance。
Type: | Microsoft.WSMan.Management.SessionOption |
Aliases: | SO |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-UseSSL
这是 WSMan 提供程序提供的动态参数。 WSMan 提供程序和此参数仅在 Windows 上可用。
指定应使用安全套接字层 (SSL) 协议来建立与远程计算机的连接。 默认情况下,不使用 SSL。
有关详细信息,请参阅 New-WSManInstance。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Value
指定新项的值。 还可以通过管道将值传递给 New-Item
。
Type: | Object |
Aliases: | Target |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-WhatIf
显示运行该 cmdlet 时会发生什么情况。 cmdlet 未运行。
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
输入
可以通过管道将新项的值传递给此 cmdlet。
输出
此 cmdlet 返回它创建的项。
备注
PowerShell 包含以下别名 New-Item
:
- 所有平台:
ni
New-Item
旨在处理由任何提供程序公开的数据。 若要列出会话中可用的提供程序,请键入 Get-PsProvider
。 有关详细信息,请参阅 about_Providers。
相关链接
反馈
提交和查看相关反馈