Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除内容,同时保留第一个顶级powershell_Powershell - Fatal编程技术网

删除内容,同时保留第一个顶级powershell

删除内容,同时保留第一个顶级powershell,powershell,Powershell,我有一个sample.txt文件,我想删除其中的内容,除了第一行 我的sample.txt文件如下所示: 1.dslkjfladsdjgmvjfgmldskbm;sldkvmg,;sdlmg;msj,;sdrl 2.dlkjfsadfjmsal;jsalv;dsvmdsfkgmrg,pvtpvhtphb[h.[y 3.fljsafckg,ksd,v;vyklt;vlkbmyulnmktr,ouf,f/.n, 4.dflcajsmglsdv;ks'ítb;pjk.'gpjnuk. uo.hulmk

我有一个sample.txt文件,我想删除其中的内容,除了第一行

我的sample.txt文件如下所示:

1.dslkjfladsdjgmvjfgmldskbm;sldkvmg,;sdlmg;msj,;sdrl
2.dlkjfsadfjmsal;jsalv;dsvmdsfkgmrg,pvtpvhtphb[h.[y
3.fljsafckg,ksd,v;vyklt;vlkbmyulnmktr,ouf,f/.n,
4.dflcajsmglsdv;ks'ítb;pjk.'gpjnuk. uo.hulmk,vgjhumk.'l
我希望输出结果如下所示:

1.dslkjfladsdjgmvjfgmldskbm;sldkvmg,;sdlmg;msj,;sdrl
我尝试了这些命令,但输出清除了整个文件

Clear-Content C:\sample.txt | where { $_.length -gt 2}| Set-Content C:\sample.txt

Clear-Content C:\sample.txt | Select -first 2 | Set-Content C:\sample.txt
有人能告诉我我错过了什么吗? 感谢:

Clear Content cmdlet可删除项目的内容,例如从文件中删除文本,但不会删除项目。因此,该项存在,但为空

通过使用
clearcontent
可以删除
sample.txt
的内容,而不必阅读它。相反,您希望使用
获取内容

(Get-Content C:\sample.txt -First 1) | Set-Content C:\sample.txt
使用作品的
-First
参数(别名为
-TotalCount
)与
选择对象-First
基本相同,但允许
获取内容
在获得所需行数后立即停止读取文件<传递代码>1而不是
2
,以仅检索第一行。注意,
Get Content
的调用必须用括号括起来,否则。或者,您可以先将文件内容读入变量

$firstLine = Get-Content C:\sample.txt -First 1
$firstLine | Set-Content C:\sample.txt
…或先将过滤后的文本输出到另一个文件,然后覆盖原始文本,从而执行“安全覆盖”

Get-Content C:\sample.txt -First 1 | Set-Content C:\sample.txt.tmp
Move-Item C:\sample.txt.tmp C:\sample.txt -Force
发件人:

Clear Content cmdlet可删除项目的内容,例如从文件中删除文本,但不会删除项目。因此,该项存在,但为空

通过使用
clearcontent
可以删除
sample.txt
的内容,而不必阅读它。相反,您希望使用
获取内容

(Get-Content C:\sample.txt -First 1) | Set-Content C:\sample.txt
使用作品的
-First
参数(别名为
-TotalCount
)与
选择对象-First
基本相同,但允许
获取内容
在获得所需行数后立即停止读取文件<传递代码>1而不是
2
,以仅检索第一行。注意,
Get Content
的调用必须用括号括起来,否则。或者,您可以先将文件内容读入变量

$firstLine = Get-Content C:\sample.txt -First 1
$firstLine | Set-Content C:\sample.txt
…或先将过滤后的文本输出到另一个文件,然后覆盖原始文本,从而执行“安全覆盖”

Get-Content C:\sample.txt -First 1 | Set-Content C:\sample.txt.tmp
Move-Item C:\sample.txt.tmp C:\sample.txt -Force

(gc C:\sample.txt | select-first 1)| out文件C:\sample.txt

(gc C:\sample.txt | select-first 1)| out文件C:\sample.txt

感谢您的帮助,我终于成功地应用了以下代码:

(Get-Content C:/sample.txt -TotalCount 1) | Set-Content C:\sample.txt (获取内容C:/sample.txt-TotalCount 1)|设置内容C:\sample.txt 谢谢
Manu

感谢您的帮助,我终于成功地应用了以下代码:

(Get-Content C:/sample.txt -TotalCount 1) | Set-Content C:\sample.txt (获取内容C:/sample.txt-TotalCount 1)|设置内容C:\sample.txt 谢谢
Manu

别忘了
获取内容-TotalCount 1
@MathiasR.Jessen很好。我知道有一种方法可以更有效地限制读取的行数,但我正在中查找。别忘了
Get Content-TotalCount 1
@MathiasR.Jessen这一点很好。我知道有一种方法可以更有效地限制读取的行数,但我正在寻找它。我并不想游说我的答案……但这与我的第一个代码片段相同
-First
获取内容
-TotalCount
参数的别名,这在我的回答中有说明。我不是想游说我的答案……但这与我的第一个代码片段相同
-First
Get Content
-TotalCount
参数的别名,这在我的回答中有说明。