如何编写PowerShell脚本批量处理多文本文件移除空白并输出到指定文件夹
批量移除文本空行PowerShell实现
完整脚本
# 配置源目录与独立输出目录 $sourcePath = "C:\test" $outputRoot = "C:\test\FilteredOutput" # 自动创建不存在的输出目录 if (!(Test-Path $outputRoot)) { New-Item -ItemType Directory -Path $outputRoot | Out-Null } # 遍历源目录下所有txt文件 Get-ChildItem -Path $sourcePath -Filter *.txt -File | ForEach-Object { # 按规则生成输出文件名 $targetFile = Join-Path $outputRoot ($_.BaseName + "out.txt") # 复用已验证的空行过滤逻辑 Get-Content $_.FullName | Where-Object { $_ -ne "" } | Out-File $targetFile }
关键说明
- 路径配置:可直接修改
$sourcePath为实际存放待处理txt的目录,$outputRoot可自定义为任意独立文件夹,与源目录隔离避免输出文件被重复扫描。 - 扫描范围控制:默认仅处理源目录根下的txt文件,如需递归处理所有子目录内的txt,在
Get-ChildItem命令后追加-Recurse参数,同时需追加管道过滤Where-Object { $_.DirectoryName -ne $outputRoot },避免重复处理输出目录内的文件。 - 命名规则:自动提取原文件无扩展名的名称拼接
out.txt,例如原文件4.txt会生成4out.txt存入输出目录,完全匹配命名要求。 - 编码调整:如果需要和原文件编码保持一致,可在
Out-File后追加-Encoding参数,例如-Encoding UTF8、-Encoding Default,避免出现乱码。 - 过滤增强:如果需要同时过滤仅含空格、制表符的伪空行,可将过滤条件替换为
Where-Object { $_.Trim() -ne "" }。
内容的提问来源于stack exchange,提问作者Meera
相关产品推荐
相关产品推荐

