我将日志文件存储在文件夹D:\TILT_Logs
的多个子目录中。我想将所有文件合并到一个文档D:\TILT_Logs\Combined.log
。
我当前的脚本似乎正在跳过一些文件,但我不确定原因。
$combine = GCI 'D:\TILT_Logs' -Recurse -Filter '*.log'
Get-Content $combine.FullName | Set-Content 'D:\TILT_Logs\Combined.log'
当我打开Combined.log
时,它会丢失一些日志文件中的数据,但我无法弄清楚它们被跳过的原因。
**编辑 - 我还运行echo $combine
以确保我的GCI正在处理所有文件,而且它是。所有文件都由GCI寻址并得到回应,但只有一小部分文件进入Combined.log
某些似乎已被跳过的文件是
D:\TILT_Logs\Dec\12_29\Tilt.12892.2017_12_29.log
和
D:\TILT_Logs\March\3_6_Kutchey\Tilt.4740.2018_03_06.log
有没有人有想法?
由于
答案 0 :(得分:3)
如果您使用Add-Content
命令行开关,它将追加而不是替换
$combine = GCI 'D:\TILT_Logs' -Recurse -Filter '*.log'
Get-Content $combine.FullName | Add-Content 'D:\TILT_Logs\Combined.log'
编辑将这些命令简化为一行也是有效的,归功于Mathias R. Jessen
Get-ChildItem 'D:\TILT_Logs' -Recurse -Filter '*.log' | Get-Content | Add-Content 'D:\TILT_Logs\Combined.log'