Windows怎么用PowerShell读写文本文件_Windows如何用Get-Content和Set-Content处理文件内容【基础】

酷雪小哥_3982

酷雪小哥_3982

2026-03-21

937人浏览

原创

PowerShell通过Get-Content读取、Set-Content覆盖、Add-Content追加、Out-File精细控制及StreamReader流式处理,实现文本文件的高效读写与内容替换。

windows怎么用powershell读写文本文件_windows如何用get-content和set-content处理文件内容【基础】

如果您需要在Windows系统中通过命令行方式读取或修改文本文件内容,PowerShell提供了简洁高效的内置命令。以下是使用Get-Content和Set-Content处理文本文件内容的基础操作步骤:

一、使用Get-Content读取文本文件

Get-Content命令用于从指定路径的文本文件中提取全部或部分内容,并将其输出到控制台或赋值给变量。它默认以字符串数组形式逐行读取,适合处理日志、配置等纯文本数据。

1、打开PowerShell窗口(以管理员身份或普通用户身份均可,取决于目标文件访问权限)。

2、输入命令:Get-Content -Path "C:\example.txt",其中路径需替换为实际存在的文本文件绝对路径。

3、如需仅显示前5行,追加参数:-TotalCount 5,完整命令为:Get-Content -Path "C:\example.txt" -TotalCount 5。

4、若文件编码非UTF-8(如GB2312或UTF-8 BOM格式),需显式指定编码:Get-Content -Path "C:\example.txt" -Encoding Default(Default对应系统ANSI编码)或-Encoding UTF8。

二、使用Set-Content写入或覆盖文本文件

Set-Content命令将指定内容写入目标文件,若文件已存在则**完全覆盖原有内容**,不保留原文件任何数据。适用于初始化配置、生成报告等场景。

1、输入命令:Set-Content -Path "C:\output.txt" -Value "第一行内容",该命令将在指定路径创建新文件并写入单行文本。

2、写入多行内容时,可将字符串数组作为Value参数:Set-Content -Path "C:\output.txt" -Value @("第一行", "第二行", "第三行")。

3、若需追加内容而非覆盖,不能使用Set-Content,应改用Add-Content命令。

4、写入时指定编码格式可避免中文乱码:Set-Content -Path "C:\output.txt" -Value "测试文本" -Encoding UTF8。

三、结合Get-Content与Set-Content实现内容替换

通过管道将Get-Content读取的内容传递给Set-Content前的处理逻辑,可完成查找替换、过滤、格式转换等操作。整个过程不依赖外部工具,全部在PowerShell内部完成。

windows-screenshot-ocr
windows-screenshot-ocr

Windows全屏截图(自动标记鼠标位置)+ 原生OCR文字识别。本地运行,无需联网和API Key,适用于截图分析和自动化OCR场景。

下载

1、读取文件内容后替换所有“旧文本”为“新文本”,再写回原文件:Get-Content "C:\data.txt" | ForEach-Object { $_ -replace "旧文本", "新文本" } | Set-Content "C:\data.txt"。

2、仅保留包含特定关键词的行(如含“error”的日志行):Get-Content "C:\log.txt" | Where-Object { $_ -match "error" } | Set-Content "C:\filtered.log"。

3、将文件每行首尾添加固定字符(例如添加方括号):Get-Content "C:\list.txt" | ForEach-Object { "[$_]"} | Set-Content "C:\formatted.txt"。

四、使用Out-File替代Set-Content进行更精细的输出控制

Out-File命令提供比Set-Content更丰富的输出选项,例如自动换行宽度、追加模式、字符编码及错误抑制,适合对输出格式有明确要求的场景。

1、将命令结果保存为UTF-8编码文件(无BOM):Get-Content "C:\input.txt" | Out-File -FilePath "C:\result.txt" -Encoding utf8NoBOM。

2、以追加方式写入内容(不覆盖原文件):"新增一行" | Out-File -FilePath "C:\append.txt" -Append。

3、限制每行最大宽度为80字符(自动换行):Get-Content "C:\text.txt" | Out-File -FilePath "C:\wrapped.txt" -Width 80。

五、处理大文件时的内存优化方法

当文本文件体积较大(如超过100MB),直接使用Get-Content加载全部内容可能导致内存占用过高甚至失败。此时应采用逐行流式处理策略,避免一次性读入全部数据。

1、使用Get-Content -ReadCount 1000分批次读取(每次1000行),减少内存峰值:Get-Content "C:\bigfile.txt" -ReadCount 1000 | ForEach-Object { $_ | Where-Object { $_ -match "keyword" } } | Set-Content "C:\filtered.txt"。

2、利用System.IO.StreamReader类手动逐行读取:$reader = [System.IO.File]::OpenText("C:\bigfile.txt"); while (($line = $reader.ReadLine()) -ne $null) { if ($line -match "target") { Write-Output $line } }; $reader.Close()。

3、对超大日志文件进行计数统计(如统计含“fail”的行数),使用Measure-Object配合管道:Get-Content "C:\huge.log" -ReadCount 5000 | ForEach-Object { $_ -match "fail" } | Measure-Object -Sum。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

windows

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

2023.09.22

549

3

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

2024.03.01

1698

6

while的用法
while的用法

while的用法是“while 条件: 代码块”,条件是一个表达式,当条件为真时,执行代码块,然后再次判断条件是否为真,如果为真则继续执行代码块,直到条件为假为止。本专题为大家提供while相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.25

354

5

php中foreach用法
php中foreach用法

本专题整合了php中foreach用法的相关介绍,阅读专题下面的文章了解更多详细教程。

2025.12.04

798

13

scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

1009

5

500error怎么解决
500error怎么解决

500error的解决办法有检查服务器日志、检查代码、检查服务器配置、更新软件版本、重新启动服务、调试代码和寻求帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.25

3160

5

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.03

1818

5

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.04

2884

5

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

2023.10.24

6204

49

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Conan 2 安装指南
Conan 2 安装指南

共0课时 | 0人学习