如下说明是翻译
: help Set-Content
产生的帮助信息
.
译者
: Edengundam(
马涛
)
Set-Content
大纲
将新内容写入项目或替换项目中存在的内容为新内容
.
语法
Set-Content [-path] <string[]> [-value] <Object[]> [-include <string[]>] [-exclude <string[]>] [-filter <string>] [-passThru] [-force] [-credential <PSCredential>] [-whatIf] [-confirm] [<CommonParameters>]
Set-Content [-literalPath] <string[]> [-value] <Object[]> [-include <string[]>] [-exclude <string[]>] [-filter <string>] [-passThru] [-force] [-credential <PSCredential>] [-whatIf] [-confirm] [<CommonParameters>]
详细描述
Set-Content cmdlet
是一个字符串处理
cmdlet
将会写入或替换指定项目
(
例如
:
文件
)
中的内容
.
而
Add-Content cmdlet
将会向文件中追加内容
, Set-Content
替换现存的内容
.
你可以在命令行输入或通过管道将新内容传递给
Set-Content.
PARAMETERS
-path <string[]>
设定要接收输入内容的项目路径
.
此处允许使用通配符
.
强制参数
?
|
true
|
参数位置
?
|
1
|
默认值
|
N/A -
路径名必须指定
|
允许从管道绑定输入
?
|
true (
根据属性名
)
|
允许通配符扩展
?
|
true
|
-include <string[]>
改变指定的项目
.
此参数值用于限定
Path
参数
.
输入一个路径元素或模式
,
例如
"*.txt"
(
此参数允许通配符
)
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
true
|
-exclude <string[]>
忽略指定的项目
.
此参数值用于限定
Path
参数
.
输入一个路径元素或模式
,
例如
"*.txt"
(
此参数允许通配符
)
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
true
|
-filter <string>
指定特定
provider
格式或语言的过滤器
.
此参数值用于限定
Path
参数
.
过滤器的语法取决于
provider
(
是否支持通配符也依赖
provider)
.
过滤器相比其他参数更加有效
,
主要因为
provider
取值时候使用过滤器
,
而不是等到
provider
将所有内容返回后
,
由
Windows PowerShell
过滤对象
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
false
|
-passThru <SwitchParameter>
输出此命令创建的对象到管道中
.
默认情况下
,
此命令不会将对象输出到管道
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
False
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
false
|
-value <Object[]>
指定项目的新内容
.
强制参数
?
|
true
|
参数位置
?
|
2
|
默认值
|
|
允许从管道绑定输入
?
|
true (
根据值
,
根据属性值
)
|
允许通配符扩展
?
|
true
|
-force <SwitchParameter>
在不破坏安全前提下
,
能够避免影响命令成功执行的限制条件
.
例如
: Force
参数能够覆盖具有只读属性的文件或创建路径中的必要成分
,
但是不会改变人和文件的权限
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
False
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
false
|
-credential <PSCredential>
使用其他凭证进行资源访问认证
. <Credential>
代表着用户名
(
例如
: "User01"
或
"Domain01/User01")
或者
PSCredential
对象
(
例如
:
通过
Get-Credential cmdlet
取得的对象
).
如果此处使用用户名
,
命令执行时会提示输入该用户密码
.
尽管此参数出现
,
但是并非所有
Windows PowerShell
核心
cmdlets
或
providers
支持此功能
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
|
允许从管道绑定输入
?
|
true (
根据属性名
)
|
允许通配符扩展
?
|
false
|
-literalPath <string[]>
指定接收内容的项目路径
.
与
Path
不同
, LiteralPath
的值被直接使用
,
不会对任何通配符进行解释
.
如果路径中包含了转义字符
,
需要将路径用单引号保护
.
单引号指示
Windows PowerShell
不对字符串中的转义字符进行处理
.
强制参数
?
|
true
|
参数位置
?
|
1
|
默认值
|
|
允许从管道绑定输入
?
|
true (
根据属性名
)
|
允许通配符扩展
?
|
false
|
-whatIf
描述执行此命令将会发生的现象
,
不会真正执行此命令
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
false
|
-confirm
执行命令前提示你进行确认
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
false
|
<
公共参数
>
此命令支持公共参数
: -Verbose, -Debug, -ErrorAction, -ErrorVariable, and -OutVariable.
更多信息
,
输入
, "get-help about_commonparameters".
输入类型
String
注意
更多信息
,
输入
"Get-Help Set-Content -detailed".
需要技术信息
,
输入
"Get-Help Set-Content -full".
Set-Content
用来进行字符串处理
.
如果你从管道中输入了非字符串类型的对象给
Set-Content,
在写入之前它将会把对象转换为字符串
.
将对象写入到文件
,
使用
Out-File
.
如果需要为该命令提供多个参数
,
请使用逗号进行分隔
.
例如
, "<parameter-name> <value1>, <value2>".
你可以使用
Set-Content
内建别名
"sc".
需要更多信息
,
查看
About_Alias
.
例
1
C:/PS>set-content -path C:/Test1/test*.txt -value "Hello, World"
此命令将会替换所有位于目录
Test1
中那些以
"test"
开头的文件内容为
"Hello, World."
此例子用来展示如何在命令行上输入更新的内容
.
例
2
C:/PS>get-date | set-content C:/Test1/date.csv
此命令创建了一个
CSV
文件保存当前的日期和时间
.
它使用了
Get-Date
cmdlet
来取得当前系统日期和时间
.
管道运算符将输出结果发送给
Set-Content,
此命令将会创建文件并写入内容
.
如果目录
Test1
不存在
,
命令将会失败
,
但是如果只是文件不存在
,
命令将会创建该文件
.
例
3
C:/PS>(get-content Notice.txt) | foreach-object {$_ -replace "Warning", "Caution"} | set-content Notice.txt
此命令将会替换
Notice.txt
文件中所有
"Warning"
为
"Caution".
首先是用
Get-Content
cmdlet
获得
Notice.txt
中的内容
.
管道运算符将输出结果发送给
ForEach-Object
cmdlet,
此命令将会对
Get-Content
取得的每一行内容应用表达式
.
表达式使用
"$_"
符号来引用当前对象
,
参数
Replace
指定了需要替换的文本
.
另一个管道运算符将输出结果发送给
Set-Content
将会替换
Notice.txt
为新的内容
.
将
Get-Content
命令括起来的圆括号确保
Get
的操作在
Set
之前是完整的
.
否则
,
命令将会导致失败
,
这是由于两个命令试图访问同一个命令
.
相关链接
Add-Content
Get-Content
Clear-Content
about_namespace