创建一个代码,使用条件语句读取文件内容,直到内容中的特定字符串为止

时间:2019-05-20 09:09:50

标签: powershell powershell-v4.0

我有这个代码片段,它读取文件内容直到特定的字符串,然后将文本文件内容复制到另一个文件

我尝试使用array,split方法反转内容,但没有得到想要的输出。

Non-fatal error enumerating at <private>, continuing: Error Domain=NSCocoaErrorDomain Code=260 "未能打开文件“PlugIns”,因为它不存在。"
UserInfo={
 NSURL=PlugIns/ -- file:///private/var/folders/xn/08sc_nts0n11yyw_3ddlngdh0000gn/T/AppTranslocation/A0F3B185-B4AB-4CC8-A3C5-86DAA22043D5/d/Updater.app/Contents/,
NSFilePath=/private/var/folders/xn/08sc_nts0n11yyw_3ddlngdh0000gn/T/AppTranslocation/A0F3B185-B4AB-4CC8-A3C5-86DAA22043D5/d/Updater.app/Contents/PlugIns, 
NSUnderlyingError=0x7fd1d2d13fe0 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}
}

1 个答案:

答案 0 :(得分:0)

您不需要使用内容反转数组或使用循环。

这是一个简单的解决方案:

$x = Get-Content -Path "C:\Users\Desktop\abc*.txt" -Raw;

$pos = $x.IndexOf("Hello"); #position of the substring

$result = $x.Substring(0, $pos); #cuting the left part (before the substring)

$result | Out-File "C:\Users\Desktop\abc_out.txt"; #Output the result to file

说明:

  1. 原始字符串获取文件的内容。

  2. 找到子字符串“ Hello”的位置

  3. 剪切子字符串之前的部分

  4. 将结果输出到文件中