You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell输出格式化问题:如何将表格格式文件信息写入文本文件

问题:PowerShell无法将表格格式的文件信息写入文本文件

我正在学习PowerShell,需要完成三项任务:

  • A)以表格格式在屏幕显示指定文件夹内文件
  • B)创建新文本文件
  • C)将A的表格格式信息写入新文件

目前前两项已完成,但C项存在问题:文本文件仅显示文件夹名称,未包含Length和LastWriteTime的表格格式内容。我的代码如下:

Get-ChildItem C:\Users\LabAdmin\Desktop\Folder1\ | format-table Name, Length, LastWriteTime -AutoSize
New-Item C:\Users\LabAdmin\Desktop\Folder1\ -Name 'NewFile.txt' -ItemType File
Get-ChildItem C:\Users\LabAdmin\Desktop\Folder1\ | Set-Content C:\Users\LabAdmin\Desktop\Folder1\NewFile.txt

问题原因

Set-Content直接接收Get-ChildItem输出的FileInfo/DirectoryInfo对象时,默认只会写入对象的名称(调用ToString()方法的结果),不会保留你用Format-Table生成的表格格式。

解决方案

要将屏幕上显示的表格格式完整写入文件,需要用Format-Table配合Out-File命令,它会将格式化后的输出转换成和屏幕一致的文本格式:

# A)屏幕显示表格格式文件信息
Get-ChildItem C:\Users\LabAdmin\Desktop\Folder1\ | Format-Table Name, Length, LastWriteTime -AutoSize

# B)创建新文件
New-Item C:\Users\LabAdmin\Desktop\Folder1\ -Name 'NewFile.txt' -ItemType File

# C)将表格格式信息写入文件
Get-ChildItem C:\Users\LabAdmin\Desktop\Folder1\ | Format-Table Name, Length, LastWriteTime -AutoSize | Out-File C:\Users\LabAdmin\Desktop\Folder1\NewFile.txt -Encoding utf8

补充说明

  • -Encoding utf8参数用于避免中文或特殊字符出现乱码问题;
  • 如果需要更灵活的输出格式(比如CSV),可以用Get-ChildItem | Select-Object Name, Length, LastWriteTime | ConvertTo-Csv | Set-Content,但这种格式和屏幕表格不同,适合后续数据处理。

内容的提问来源于stack exchange,提问作者Showtunes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 08:07:06