Как сделать расщепление строки - PullRequest
0 голосов
/ 11 января 2012

Как я могу разбить строку?

Я хотел бы включить C:\RoamingFiles\D\file.txt в D:\file.txt.

Я не уверен, как это сделать, так как split не отфильтрует C:\RoamingFiles\, как я хочу.

Ответы [ 3 ]

2 голосов
/ 11 января 2012

Я немного сбит с толку относительно того, что именно вы хотите -split сделать здесь.Кажется, что

$myString -replace '^C:\\RoamingFiles\\([^\\]+)\\', '$1:\'

будет работать лучше для того, что вы там делаете.Это по существу заменяет компонент пути C:\RoamingFiles\ на следующую букву диска.Но все это в значительной степени догадки, поскольку вы привели только один пример.

1 голос
/ 11 января 2012

Пробовал это использовать [System.IO.Path]?

$name = "C:\RoamingFiles\file.txt"
$shortname =  [System.IO.Path]::GetFileName($name)
$newname =  [System.IO.Path]::Combine("D:\", $shortname)
echo $newname
0 голосов
/ 12 января 2012

Это должно работать нормально (включая подпапки):

$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, ":")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...