Powershell-将文件名写入同一文件
我有很多.csv文件,我想在最后一个位置的末尾将文件名写入同一个文件 例如,在C:\CSV中,我有:Powershell-将文件名写入同一文件,powershell,Powershell,我有很多.csv文件,我想在最后一个位置的末尾将文件名写入同一个文件 例如,在C:\CSV中,我有: P0_0050569F52981EE39CEF8C857147E850.csv P0_0050569F52981EE39CEF8D4825092850.csv P0_0050569F52981EE39CEF8EE13B954850.csv …还有另外一千个这样的文件 在每个文件中,我都有一些内容: P0_0050569F52981EE39CEF8C857147E850.csv=365013
- P0_0050569F52981EE39CEF8C857147E850.csv
- P0_0050569F52981EE39CEF8D4825092850.csv
- P0_0050569F52981EE39CEF8EE13B954850.csv
- P0_0050569F52981EE39CEF8C857147E850.csv=365013;253;9001
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()
}
这将发生在每个CSV结尾的文件名上
Get-ChildItem -Filter "*.csv" -Path "C:\CSV" -Recurse | % {
(";"+"`r`n"+$_.name) | Out-File -FilePath $_.fullname -Append
}
米基布的选择应该行得通。下面是另一种方法:
Get-ChildItem -Filter "*.csv" -Path "C:\CSV" -Recurse | foreach {$contents = get-content $_.fullname; $contents +=";"+"`r`n"+$_.name; Set-Content $_.fullname -Value $contents }
您的意思是$filename=$\u0.Fullname而不是$filename=$filenameMickyB,我认为$\u0.name对请求的内容更准确,因为$\u0.Fullname包含文件的完整路径,包括目录。无论如何,你或我的答案可能已经足够接近了。