我有很多.csv文件,我想把文件名写到同一个文件中,在最后一个位置的末尾。
例如在C:\ CSV中我有:
P0_0050569F52981EE39CEF8C857147E850.csv
P0_0050569F52981EE39CEF8D4825092850.csv
P0_0050569F52981EE39CEF8EE13B954850.csv
... 以及另外一千多个这些文件
在每个文件中我都有一些内容:
我想将此转换为365013;253;9001
:
365013; 253; 9001;
P0_0050569F52981EE39CEF8C857147E850.csv
我找不到错误......
Get-ChildItem -Filter "*.csv" -Path "C:\CSV" -Recurse | % {
#Open file
$reader = New-Object System.IO.StreamReader $_.FullName
#Ignore first line
$reader.ReadLine() | out-null
#Get name
$filename = $filename
#Write
Add-Content ";" $filename
#Close stream
$reader.Close()
}
答案 0 :(得分:0)
这将在每个CSV的末尾发生文件名。
Get-ChildItem -Filter "*.csv" -Path "C:\CSV" -Recurse | % {
(";"+"`r`n"+$_.name) | Out-File -FilePath $_.fullname -Append
}
答案 1 :(得分:0)
MickyB的选择应该有效。这是另一种方法:
Get-ChildItem -Filter "*.csv" -Path "C:\CSV" -Recurse | foreach {$contents = get-content $_.fullname; $contents +=";"+"`r`n"+$_.name; Set-Content $_.fullname -Value $contents }