nom*_*nom 3 arrays powershell split
/我尝试使用 Powershell 在每行最后一次出现分隔符 ( ) 时拆分字符串数组。示例输入数组:
classes/CaseHandler.cls
email/Insurance_Templates/Policy_Amend_Approval_Request.emailcode here
Run Code Online (Sandbox Code Playgroud)
运行命令$arr -split '/'给出以下结果:
classes
CaseHandler.cls
email
Insurance_Templates
Policy_Amend_Approval_Request.email
Run Code Online (Sandbox Code Playgroud)
这对于类文件来说很好,因为我需要第一行的文件夹路径和第二行的文件名。然而,输入中的许多文件具有更深的文件路径。我正在寻找一种方法,仅在字符最后一次出现时分割数组的每一行/。所需的输出是:
classes
CaseHandler.cls
email/Insurance_Templates
Policy_Amend_Approval_request.email
Run Code Online (Sandbox Code Playgroud)
我已经尝试了多种使用子字符串方法的方法,但无法弄清楚如何将其合并到逐行分割数组中。对此的任何帮助将不胜感激。
由于您正在处理文件名,因此应该使用Split-Pathcmdlet:
PS> $paths = "classes/CaseHandler.cls", `
"email/Insurance_Templates/Policy_Amend_Approval_Request.emailcode"
Run Code Online (Sandbox Code Playgroud)
要获取目录部分:
PS> $paths | Split-Path
classes
email\Insurance_Templates
Run Code Online (Sandbox Code Playgroud)
要获取文件部分:
PS> $paths | Split-Path -Leaf
CaseHandler.cls
Policy_Amend_Approval_Request.emailcode
Run Code Online (Sandbox Code Playgroud)
将它们放在一起以获得您想要的格式:
PS> $paths | % { Split-Path $_ ; Split-Path -Leaf $_ }
classes
CaseHandler.cls
email\Insurance_Templates
Policy_Amend_Approval_Request.emailcode
Run Code Online (Sandbox Code Playgroud)