将项的值更改为命令中指定的值。

语法

Set-Item [-LiteralPath] <string[]> [[-Value] <Object>] [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Set-Item [-Path] <string[]> [[-Value] <Object>] [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

说明

Set-Item cmdlet 将项的值(如变量或注册表项)更改为命令中指定的值。

参数

-Credential <PSCredential>

指定有权执行此操作的用户帐户。默认值为当前用户。

键入用户名,如“User01”或“Domain01\User01”;或输入 PSCredential 对象,如 Get-Credential cmdlet 输入的一个 PSCredential 对象。如果键入用户名,则将提示您输入密码。

随同 Windows PowerShell 一起安装的任何提供程序都不支持此参数。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

true (ByPropertyName)

是否接受通配符?

false

-Exclude <string[]>

忽略指定项。此参数的值对 Path 参数进行限定。请输入路径元素或模式,例如“*.txt”。允许使用通配符。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-Filter <string>

以提供程序的格式或语言指定筛选器。此参数的值对 Path 参数进行限定。筛选器的语法(包括通配符的使用)取决于提供程序。筛选器比其他参数更有效,因为提供程序是在检索对象时应用筛选器,而不是在检索对象后再由 Windows PowerShell 筛选对象。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-Force

允许该 cmdlet 设置非此不能更改的项(如只读的别名或变量)。该 cmdlet 不能更改常量别名或变量。不同提供程序有不同的实现。有关详细信息,请参阅 about_Providers。即使使用 Force 参数,该 cmdlet 也无法覆盖安全限制。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-Include <string[]>

只更改指定项。此参数的值对 Path 参数进行限定。请输入路径元素或模式,例如“*.txt”。允许使用通配符。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-LiteralPath <string[]>

指定到新项位置的路径。与 Path 不同,LiteralPath 的值严格按照所键入的形式使用。不会将任何字符解释为通配符。如果路径包括转义符,请将其括在单引号中。单引号会告知 Windows PowerShell 不要将所有字符都解释为转义序列。

是否为必需?

true

位置?

1

默认值

是否接受管道输入?

true (ByPropertyName)

是否接受通配符?

false

-PassThru

将表示项的对象传递到管道。默认情况下,此 cmdlet 将不产生任何输出。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-Path <string[]>

指定到新项位置的路径。允许使用通配符。

是否为必需?

true

位置?

1

默认值

是否接受管道输入?

true (ByPropertyName)

是否接受通配符?

false

-Value <Object>

为项指定新值。

是否为必需?

false

位置?

2

默认值

是否接受管道输入?

true (ByValue, ByPropertyName)

是否接受通配符?

false

-Confirm

在执行命令之前提示您进行确认。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-WhatIf

描述如果执行该命令会发生什么情况(无需实际执行该命令)。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-UseTransaction

将命令包含在活动事务中。仅当正在执行事务时,此参数才有效。有关详细信息,请参阅 about_Transactions。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

<CommonParameters>

此 cmdlet 支持通用参数:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。有关详细信息,请参阅 about_Commonparameters.

输入和输出

输入类型是指可通过管道传递给 cmdlet 的对象的类型。返回类型是指 Cmdlet 所返回对象的类型。

输入

System.Object

可以通过管道将表示新的项值的对象传递给 Set-Item。

输出

None 或一个表示新项或已更改项的对象。

如果使用 Passthru 参数,则 Set-Item 生成一个表示项的对象。否则,此 cmdlet 将不产生任何输出。

说明

还可以使用 Set-Item 的内置别名“si”来对其进行引用。有关详细信息,请参阅 about_Aliases。

Windows PowerShell FileSystem 提供程序不支持 Set-Item cmdlet。若要更改文件系统中的项的值,请使用 Set-Content。

在注册表驱动器(HKLM: 和 HKCU:)中,Set-Item 更改注册表项的(默认)值中的数据。若要创建和更改注册表项的名称,请使用 New-Item 和 Rename-Item。若要更改注册表值中的名称和数据,请使用 New-ItemProperty、Set-ItemProperty 和 Rename-ItemProperty。

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

示例 1

C:\PS>set-item -path alias:np -value c:\windows\notepad.exe

说明
-----------
此命令为 Notepad 创建一个别名“np”。






示例 2

C:\PS>set-item -path env:UserRole -value Administrator

说明
-----------
此命令使用 Set-Item cmdlet 将“UserRole”环境变量的值更改为“Administrator”。






示例 3

C:\PS>set-item -path function:prompt -value {'PS '+ $(Get-Date -format t) + " " + $(Get-Location) + '> '}

说明
-----------
此命令使用 Set-Item cmdlet 来更改“prompt”函数,以便让该函数在路径之前显示时间。






示例 4

C:\PS>set-item -path function:prompt -options "AllScope,ReadOnly"

说明
-----------
此命令设置“prompt”函数的 AllScope 选项和 ReadOnly 选项。此命令使用 Set-Item cmdlet 的 Options 动态参数。只有在将 Options 参数与 Alias 或 Function 提供程序一起使用时,该参数才在 Set-Item 中可用。






另请参阅




目录