如何分割字符串?如何分割字符串
我想將C:\RoamingFiles\D\file.txt
變成D:\file.txt
。
我不知道該怎麼做,因爲拆分不會按我想要的方式過濾掉C:\RoamingFiles\
。
如何分割字符串?如何分割字符串
我想將C:\RoamingFiles\D\file.txt
變成D:\file.txt
。
我不知道該怎麼做,因爲拆分不會按我想要的方式過濾掉C:\RoamingFiles\
。
我有點困惑,你到底想要什麼-split
在這裏做。它看起來像
$myString -replace '^C:\\RoamingFiles\\([^\\]+)\\', '$1:\'
會更好地爲你似乎在那裏做什麼。這基本上用下面的驅動器號代替了路徑組件C:\RoamingFiles\
。但是,這只是一個猜測,因爲你只舉了一個例子。
試過這個用法[System.IO.Path]?
$name = "C:\RoamingFiles\file.txt"
$shortname = [System.IO.Path]::GetFileName($name)
$newname = [System.IO.Path]::Combine("D:\", $shortname)
echo $newname
它並不總是D.驅動器是C:\ RoamingFiles中的第一個目錄 – 2012-01-11 17:11:56
這應該只是罰款(包括子文件夾):
$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, ":")
非常感謝您! – 2012-01-11 15:42:47
@AlexBazuvul如果回答了您的問題,請確保您接受喬伊的回答。 – Aaron 2012-01-11 15:45:59
這個正則表達式不能處理8個字母的路徑。 (例如c:\ PROGRA〜1 \)。你能解決這個問題嗎?謝謝。 – 2012-01-11 17:08:37