Как вывести в колонке часть пути, а не весь путь?
Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik
- Ciber SLasH
- Сообщения: 209
- Зарегистрирован: Сб авг 20, 2005 21:41
- Откуда: С.-Петербург
Как вывести в колонке часть пути, а не весь путь?
Приветствую всех!
Подскажите пожалуйста, как вывести в колонку часть пути?
Задача: есть пути C:\Test\1\a; D:\Test\1\b
каким плагином/скриптом вырезать из пути по RegExp-у \w:\\Test\\1\\ и результат поместить в колонку?
Подскажите пожалуйста, как вывести в колонку часть пути?
Задача: есть пути C:\Test\1\a; D:\Test\1\b
каким плагином/скриптом вырезать из пути по RegExp-у \w:\\Test\\1\\ и результат поместить в колонку?
- Ciber SLasH
- Сообщения: 209
- Зарегистрирован: Сб авг 20, 2005 21:41
- Откуда: С.-Петербург
- Ciber SLasH
- Сообщения: 209
- Зарегистрирован: Сб авг 20, 2005 21:41
- Откуда: С.-Петербург
- Ciber SLasH
- Сообщения: 209
- Зарегистрирован: Сб авг 20, 2005 21:41
- Откуда: С.-Петербург
sa
FileX тоже пригодился.
В общем задачу решил: FileX + script
секция [CustomFields] wincmd.ini:
script.ini
getPartialPath.js
Добавлено спустя 2 часа 1 минуту:
Пришлось переделывать, не везде JS-скрипт отрабатывал.
Переделал на VBS (т.к. объект WScript в JS не доступен - ругань на WScript.CreateObject):
FileX тоже пригодился.
В общем задачу решил: FileX + script
секция [CustomFields] wincmd.ini:
Код: Выделить всё
Headers1=Путь (последние 3 каталога)\nПуть (без первых 3 каталогов)
Contents1=[=filex.GtGrandPaDir"\"][=filex.GrandPaDir"\"][=filex.ParentDir"\"]\n[=script.Result]
Options1=-1|1Код: Выделить всё
[Script]
Section=getPartialPath
[getPartialPath]
Script=.\Scripts\getPartialPath.js
LongName=1Код: Выделить всё
var depth = 3; // глубина вложенности каталогов в пути, которую нужно отбросить
var reg = new RegExp("^\\w:\\\\([^\\\\]+\\\\){"+depth+"}(.*)$");
var m = reg.exec(getPath(filename));
Content = "...\\"+m[m.length-1]+"\\";
////////////////////////////////////////////////////////////////////////////////
//==[ Funcs ]===================================================================
////////////////////////////////////////////////////////////////////////////////
//--[ Возвращает путь из полного имени файла ]----------------------------------
function getPath(fullName) {
return fullName.slice(0, fullName.lastIndexOf('\\'));
}Пришлось переделывать, не везде JS-скрипт отрабатывал.
Переделал на VBS (т.к. объект WScript в JS не доступен - ругань на WScript.CreateObject):
Код: Выделить всё
Dim FSO, Path, depth, re, m, sm, ret
'Глубина вложенности каталогов в пути, которую нужно отбросить
depth = 3
Set FSO = CreateObject("Scripting.FileSystemObject")
Set re = New RegExp
re.Pattern = "^\w:\\([^\\]+\\){" & depth & "}(.*)$"
Path = Left(filename, InStrRev(filename, "\"))
Set m = re.Execute(Path)
ret = filename
If m.Count > 0 Then
Set sm = m(0)
If sm.SubMatches.Count > 0 Then
ret = "...\" & sm.SubMatches(sm.SubMatches.Count-1)
End If
End If
content = ret
Set FSO = Nothing
Set re = Nothing
Set m = Nothing
Set sm = Nothing-
Serge Yolkin
- Сообщения: 664
- Зарегистрирован: Сб июл 25, 2009 11:12
