我想从一堆文本文件中删除内容。
在每个文本文件中 - 删除******之后的所有内容
$Path = "C:\Users\Desktop\Delete\*.txt" # Folder Containing Text files
$OutPath = "C:\Users\Desktop\Files\"
Get-Content c.txt | Where { $_ -notmatch "*****" } | Set-Content $OutPath
我见过这个powershell delete everything after character for every line in a file
我无法让它工作
我是电源外壳的新手,请原谅我的代码。
谢谢
答案 0 :(得分:2)
您可以使用-Delimiter
的{{1}}参数轻松完成此操作:
免责声明:未经测试
Get-Content
答案 1 :(得分:1)
您可以通过将整个文件作为一个字符串读取并使用-Replace
来进行RegEx匹配。
$OutPath = "C:\Users\Desktop\Files\"
ForEach($File in Get-ChildItem "C:\Users\Desktop\Delete\*.txt"){
(Get-Content $File.FullName -Raw) -Replace "(?s)^(.*?\*{5,}).*", '$1' | Set-Content $OutPath + $File.Name
}
模式匹配解释here。