csv 如何在PowerShell中拆分最后一个字符串

f8rj6qna  于 2022-12-06  发布在  Shell
关注(0)|答案(3)|浏览(212)

在我csv文件中有一个类似这样的列

SharePoint\user\Documents\2021_Changes_v2048.csv
SharePoint\user\Documents\ACB Client Repair\Client MSI's\CE1.3\CE16098\CE16098-Global\Agree.hta
SharePoint\user\Documents\ACB Client Repair\Client MSI's\AgentSetup_881.msi

我只是想知道如何才能只得到最后一个字符串

2021_Changes_v2048.csv
Agree.hta
AgentSetup_881.msi

我已经试过了,但不知道什么原因,还没有成功

$result = "SharePoint\mz1tl6_nam_corp_gm_com\Documents\2020_Changes_v512.csv"
$result.split("\",3)[-2]

不太清楚如何只在最后一个反斜杠后获取字符串。

xqnpmsa8

xqnpmsa81#

两个最简单的选项是Split-Path -Leaf或对[IO.Path]::GetFileName(...)的API调用。假设您希望从中导出对象以便将来导出,下面是它的外观:

$paths = @"
SharePoint\user\Documents\2021_Changes_v2048.csv
SharePoint\user\Documents\ACB Client Repair\Client MSI's\CE1.3\CE16098\CE16098-Global\Agree.hta
SharePoint\user\Documents\ACB Client Repair\Client MSI's\AgentSetup_881.msi
"@ -split '\r?\n'

$paths | Select-Object @{ N='FileName'; E={ [IO.Path]::GetFileName($_) }}
$paths | Select-Object @{ N='FileName'; E={ Split-Path $_ -Leaf }}
yhived7q

yhived7q2#

你的文件看起来不像CSV,如果这是整个内容它只是一个文本文件,所以你可以做:

#load file
$content = gc [path]

#split at '\' and output last string
$content | %{($_ -split '\\')[-1]}

#output
2021_Changes_v2048.csv
Agree.hta
AgentSetup_881.msi
vzgqcmou

vzgqcmou3#

您可以使用Split-Path内置函数。
请参阅https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.management/split-path?view=powershell-7.2#example-2-display-file-names

相关问题