如何使用powershell从txt文件中删除前几个字

如何使用powershell从txt文件中删除前几个字,powershell,Powershell,其中一个my host.txt文件显示了如下数据,我希望修剪后的最后一个单词存在 我该怎么做?有人能帮忙吗 |caa3ab95-ecad-46fe-9905-ceac58853ffc |测试-1-my_实例-25GHIKBPIP6| 我只需要“Test-1-my_instance-25ghikbbpip6”中的名称 我尝试了下面的方法,但根本不起作用 $hosts = Get-Content C:\host.txt foreach ($line in $hosts) { $sp

其中一个my host.txt文件显示了如下数据,我希望修剪后的最后一个单词存在

我该怎么做?有人能帮忙吗

|caa3ab95-ecad-46fe-9905-ceac58853ffc |测试-1-my_实例-25GHIKBPIP6|

我只需要“Test-1-my_instance-25ghikbbpip6”中的名称

我尝试了下面的方法,但根本不起作用

$hosts = Get-Content C:\host.txt

foreach ($line in $hosts)
    {
    $split1 = $line.trim("|")
    $split2 = $split1.Split(",")[1]
    echo $split2 >> C:\instance.txt
    }
以下是:

$hosts = Get-Content "C:\host.txt"

foreach ($line in $hosts)
    {
        $split1 = $line.trim("|")
        $split2 = $split1.Split("|")[1]
        Write-Output $split2 >> "C:\instance.txt"
    }
将给出以下输出:

Test-1-my_实例-25ghikbbpip6

例如:

    PS C:\Windows\system32> 
$hosts = Get-Content "C:\Users\me\Desktop\test.txt"

foreach ($line in $hosts)
    {
        $split1 = $line.trim("|")
        $split2 = $split1.Split("|")[1]
        Write-Output $split2 >> C:\instance.txt
    }

PS C:\Windows\system32> Get-Content C:\instance.txt
 Test-1-my_instance-25ghikbbpip6 

你为什么不在
|
上分开呢?当字符串不包含逗号时,为什么要尝试在
上拆分?在foreach循环中使用$line.split(“|”)[2]。为什么要修剪?没有意义,为什么保存到变量并写入输出?直接写到文件,以符合OP的编码风格,这样他就可以理解哪里出了问题。请随意发布一个替代的更简洁的解决方案供用户学习。谢谢。我只是想在我的文本文件| 6cb33d81-8e8e-4493-8702-a3927a4d3ab3 | bare-11-my|u instance-opsm5k6z6d6t | ACTIVE |-| Running | glcos01b private=10.100.11.1中的下面一行排序,10.231.224.31 |修剪后,我只想将IP地址10.231.224.31作为我的文本文件,但这并没有真正起作用。我在文本文件中获取IP,但也得到了一些错误$hostsraw=Get Content C:\hosts.txt foreach($line in$$hosts){$split1=$line.trim(“|”)$split2=$split1.Split(“|”)[1]$split3=$split2.Split(“,”[1]echo$split3>C:\ipaddress.txt}快速查看,您的
($$hosts中的$line)
应该是
($hosts中的$line)
但请继续,在“问题”页面上创建一个新问题,以便您可以正确设置问题的格式,包括预期结果和当前看到的内容,以及遇到的任何错误。