问题描述
我是 Powershell 的新手,我花了一整天时间研究如何拆分字符串 我有这个字符串路径
RootFolder\Subfolder1\SubFolder2\SubFolder3
我想将其拆分为两个字符串,以便第一个字符串包含 RootFolder,第二个字符串包含字符串的其余部分。
例如:RootFolder\Subfolder1\SubFolder2\SubFolder3
$rootFolder = RootFolder
$subFolders = Subfolder1\SubFolder2\SubFolder3
提前致谢!
解决方法
这里有一些方法供您使用:
使用字符串的 Split()
方法
$root,$path = "RootFolder\Subfolder1\SubFolder2\SubFolder3".Split("\",2)
$root # --> RootFolder
$path # --> Subfolder1\SubFolder2\SubFolder3
使用字符串的 IndexOf()
方法
$folder = "RootFolder\Subfolder1\SubFolder2\SubFolder3"
$index = $folder.IndexOf("\")
$root = $folder.Substring(0,$index)
$path = $folder.Substring($index + 1)
$root # --> RootFolder
$path # --> Subfolder1\SubFolder2\SubFolder3
甚至类似的东西
$folder = "RootFolder\Subfolder1\SubFolder2\SubFolder3" -split '\\'
$root = $folder[0]
$path = $folder[1..($folder.Count -1)] -join '\'
$root # --> RootFolder
$path # --> Subfolder1\SubFolder2\SubFolder3
,
一种选择是使用拆分运算符:
$splitPath = 'RootFolder\Subfolder1\SubFolder2\SubFolder3' -split '\\',2
给出这个输出:
$splitPath
RootFolder
Subfolder1\SubFolder2\SubFolder3
您可以像这样访问各个部分:
$splitPath[0]
RootFolder
如果路径以驱动器号(例如C:\RootFolder\Subfolder1\SubFolder2\SubFolder3
)开头,而您想忽略它,只需增加子串计数:
$splitPath = 'C:\RootFolder\Subfolder1\SubFolder2\SubFolder3' -split '\\',3
$splitPath
C:
RootFolder
Subfolder1\SubFolder2\SubFolder3