Что нового

Как отсечь символы в строке ?

VladUs

Скриптер
Сообщения
621
Репутация
181
Необходим шаблон для отсечения всех символов в строке, за исключением тех, которые идут после последнего (если считать слева) слэша ? Например
В строке
C:\Program Files\Skype\Phone\Skype.exe
оставить только Skype.exe

В строке
C:\WINDOWS\SYSTEM32
оставить только SYSTEM32

В строке
\SystemRoot\System32\smss.exe
оставить только smss.exe

В строке
\??\C:\WINDOWS\system32\winlogon.exe
оставить только winlogon.exe
И т.д и т.п
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Код:
$sPath = '\??\C:\WINDOWS\system32\winlogon.exe'
$aPathEl = StringSplit($sPath, '\')
MsgBox(0, 0, $aPathEl[UBound($aPathEl) - 1])
 
Автор
V

VladUs

Скриптер
Сообщения
621
Репутация
181
CreatoR
поиском так и не научился пользоваться?

Первое с чего я начал так это с поиска.
Естественно я перешел по данной ссылке и уперся в Вашу замечательную функцию _PathSplitByRegExp().
К сожалению в некоторых случаях она сбоила, а именно если путь начанался:
\??\C:\WINDOWS\system32\winlogon.exe
или
\SystemRoot\System32\smss.exe
В остальных случаях она отрабытывала очень хорошо... Может стоит подправить... :whistle:


P.S.: Вышеуказанные пути, в некоторых случаях, возвращает функция _WinAPI_GetProcessFileName()
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
VladUs [?]
возвращает функция _WinAPI_GetProcessFileName()
Если Вы пользуетесь библиотекой WinAPIEx.au3, то в ней есть функция _WinAPI_PathStripPath(). ИМХО, это то, что Вам нужно.
 
Верх