如何分割字符串?
我想将C:\RoamingFiles\D\file.txt
转为D:\file.txt
。
我不知道该怎么做,因为拆分不会按我的意愿过滤掉C:\RoamingFiles\
。
答案 0 :(得分:2)
我对你在-split
想要做什么感到困惑。好像是
$myString -replace '^C:\\RoamingFiles\\([^\\]+)\\', '$1:\'
会更好地适应您在那里所做的事情。这基本上用后面的驱动器号替换路径组件C:\RoamingFiles\
。但是,由于你只给出了一个例子,所以这几乎都是猜测。
答案 1 :(得分:1)
试过这个用[System.IO.Path]?
$name = "C:\RoamingFiles\file.txt"
$shortname = [System.IO.Path]::GetFileName($name)
$newname = [System.IO.Path]::Combine("D:\", $shortname)
echo $newname
答案 2 :(得分:0)
这应该可以正常工作(包括子文件夹):
$fullPath = "C:\RoamingFiles\D\test\test2\file.txt"
$baseFolder = "C:\RoamingFiles\" -replace "\\", "\\"
$fullPath -match "$baseFolder([a-z]\\.+)" | Out-Null
Write-Host $matches[1].Insert(1, ":")