gpt4 book ai didi

powershell - 如何简单地提取路径的前N个部分?

转载 作者:行者123 更新时间:2023-12-03 00:50:12 26 4
gpt4 key购买 nike

我有一堆目录名和文件名,有些是绝对路径,有些是相对路径。我只希望获得每个路径的2个主要部分。输入:

D:\a\b\c\d.txt\
c:\a
\my\desk\n.txt
you\their\mine

我希望得到:
D:\a
c:\a
\my\desk
you\their

在PowerShell中有实现此目的的便捷方法吗?

最佳答案

有时您可能会因为建议字符串操作而被打耳光,因为它有时是“不可靠的”。但是,您的测试数据包含3种不同的可能性。另外,从未见过有人从路径中寻找的第一部分。

我提出了一个简单的解决方案,使您的问题得到所需的输出

"D:\a\b\c\d.txt\","c:\a","\my\desk\n.txt","you\their\mine" | ForEach-Object{
($_ -split "(?<=\S)\\")[0..1] -join "\"
}

由于您的示例输出包含要保留的前导斜线,因此我需要使用后退。它将斜杠上的每个字符串分割为斜线,这些斜线前面的字符非空格。

这将不会为UNC返回正确的路径。如果只需要路径的一部分, Split-Path将是显而易见的选择。我想您可以嵌套获得2的调用,但是目前我无法找到一种简单的方法来用相同的逻辑解释所有示例。

关于powershell - 如何简单地提取路径的前N个部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30881067/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com