Powershell-删除定界符后的所有内容-在文件夹中找到的文本文件中 [英] Powershell - Delete Everything After a Delimiter - In Text files Found in Folder

查看:50
本文介绍了Powershell-删除定界符后的所有内容-在文件夹中找到的文本文件中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从一堆文本文件中删除内容.

在每个文本文件中-删除******之后的所有内容

  $ Path ="C:\ Users \ Desktop \ Delete \ *.txt"#包含文本文件的文件夹$ OutPath ="C:\ Users \ Desktop \ Files \"获取内容c.txt |其中{$ _ -notmatch"*****"} |设置内容$ OutPath 

我已经看到了 powershell删除所有内容文件中每行之后的字符之后

我无法正常工作

我是有电源外壳的新手,请原谅我的代码.

谢谢

解决方案

您可以使用 Get-Content -Delimiter 参数轻松完成此操作:

免责声明:未经测试

  $ Path ="C:\ Users \ Desktop \ Delete \ *.txt"#包含文本文件的文件夹$ OutPath ="C:\ Users \ Desktop \ Files \"Foreach(在(Get-Childitem $ path)中的$ file){(获取内容$ file.fullname-分隔符'*****')[0] |设置内容"$ OutPath \ $($ file.name)"} 

I would like to delete content from a bunch of text files.

In each text file - Delete Everything After the ******

$Path = "C:\Users\Desktop\Delete\*.txt"       # Folder Containing Text files  
$OutPath = "C:\Users\Desktop\Files\"    

Get-Content c.txt | Where { $_ -notmatch "*****" } | Set-Content $OutPath

I have seen this powershell delete everything after character for every line in a file

I couldn't get it to work

I am a newbie with power shell do please forgive my code.

Thank you

解决方案

You can use the -Delimiter parameter of Get-Content to do this pretty easily:

Disclaimer: not tested

$Path = "C:\Users\Desktop\Delete\*.txt"       # Folder Containing Text files  
$OutPath = "C:\Users\Desktop\Files\"    

Foreach ($file in (Get-Childitem $path))
{
 (Get-Content $file.fullname -Delimiter '*****')[0] |
  Set-Content "$OutPath\$($file.name)"
 }

这篇关于Powershell-删除定界符后的所有内容-在文件夹中找到的文本文件中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆