我在目录中有多个文本文件。如何将所有文件合并为一个并生成保存在桌面上的新单个文本文件?
答案 0 :(得分:5)
这是一个解决方案,它将生成一个组合文件,其中一行用于分隔每个文件的内容。如果您愿意,可以在foreach-object循环中的“”中包含您想要的任何字符。
Get-ChildItem d:\scripts -include *.txt -rec | ForEach-Object {gc $_; ""} | out-file d:\scripts\test.txt
并且FTR无需担心将您正在创建的文件放在您正在扫描的同一目录中。它是在Get-ChildItem cmdlet在管道中运行后创建的,因此不会产生问题(尽管如果不删除它,其内容将包含在脚本的后续运行中)。
答案 1 :(得分:0)
<td>
不要将结果放在与文本文件相同的目录中,否则会得到错误的结果:)
答案 2 :(得分:0)
试试这个:
$yourdir="c:\temp\"
$destfile= ([Environment]::GetFolderPath("Desktop") + "\totalresult.txt")
Get-ChildItem $yourdir -File -Filter *.txt | %{"________________________" |out-file $destfile -Append; $_.Name | Out-File $destfile -Append; gc $_.FullName | Out-File $destfile -Append}
如果你想为标题添加文件名,你可以这样做:
declare @Table table(ID int, EmployID varchar(10), TaxAmount int, TaxableAmount int)
insert into @Table values
(1, '1', 1, 0)
,(2, '1', 13, 1)
,(3, '3', 52, 4)
WITH cte AS(
SELECT *,
ROW_NUMBER() OVER(PARTITION BY EmployID ORDER BY id desc) as RN
FROM @Table
)
DELETE cte
WHERE RN <> 1;
SELECT * from @Table;