0
我正在处理一个脚本来格式化一个包含文本文件的目录并将其导出到CSV文件。我希望它执行搜索并替换每个文件以正确格式化,将其导出为具有相同文件名的CSV,然后移至下一个txt文件。我有搜索和替换工作,但不能解决如何保存每个文本文件的原始文件名。我究竟做错了什么?将多个文本文件保存为csv文件
$path = "H:\My Documents\EmailSaveAs\"
$files = Get-ChildItem -Path $path -include *.txt -recurse
echo $files
foreach($file in $files) {
Foreach-Object {
$_ -replace "`r`n`t", "," -replace "\s`r`n", "," -replace "Bytes `r`nOut", "Bytes Out" -replace "`t", "," -replace "Idle-`r`ntimeout", "Idle-timeout" -replace ",#Date", "#Date"
} |
Set-Content $path $(.BaseName + ".csv")
}
辉煌 - 完美的作品!非常感谢! – Dylan
或者,不是将它读入一个变量,而是为新名称设置一个变量,然后设置内容,您可以将它输出到ala'Get-Content $ file | Foreach-Object {do stuff}。 Out-File([io.path] :: ChangeExtension($ file,“.csv”))' – TheMadTechnician
@TheMadTechnician这是我最初编写它的方式,并且会在实践中这样做,但我想保留更多的窗口内的脚本。这样就不需要滚动查看解决方案的有趣部分。 –