View previous topic :: View next topic |
Author |
Message |
Ciber SLasH

Joined: 20 Aug 2005 Posts: 209 Location: С.-Петербург
|
(Separately) Posted: Thu Dec 05, 2013 12:45 Post subject: Как вывести в колонке часть пути, а не весь путь? |
|
|
Приветствую всех!
Подскажите пожалуйста, как вывести в колонку часть пути?
Задача: есть пути C:\Test\1\a; D:\Test\1\b
каким плагином/скриптом вырезать из пути по RegExp-у \w:\\Test\\1\\ и результат поместить в колонку? |
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
|
Back to top |
|
 |
Ciber SLasH

Joined: 20 Aug 2005 Posts: 209 Location: С.-Петербург
|
(Separately) Posted: Thu Dec 05, 2013 13:48 Post subject: |
|
|
Нет, нужно именно вырезать часть пути. Или вывести, к примеру, последние 20 символов из пути. |
|
Back to top |
|
 |
sa
Joined: 29 Apr 2009 Posts: 2692
|
(Separately) Posted: Thu Dec 05, 2013 14:45 Post subject: |
|
|
Ciber SLasH wrote: | вывести, к примеру, последние 20 символов из пути |
Может, так? [=tc.Путь:-21-] |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Dec 05, 2013 14:46 Post subject: |
|
|
Ciber SLasH
Плагин так и называется Regexp (там же примеры в ini). _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
Ciber SLasH

Joined: 20 Aug 2005 Posts: 209 Location: С.-Петербург
|
(Separately) Posted: Thu Dec 05, 2013 19:37 Post subject: |
|
|
sa
Благодарю! Тоже вариант.
Flasher
Плагин RegExp не получает полный путь файла, а только имя:
 |
|
Back to top |
|
 |
sa
Joined: 29 Apr 2009 Posts: 2692
|
(Separately) Posted: Thu Dec 05, 2013 22:37 Post subject: |
|
|
Если нужно выделить 2-3 последние папки пути, то можно воспользоваться плагином filex:
[=filex.В подпапке папки]\[=filex.В подпапке]\[=filex.В папке] |
|
Back to top |
|
 |
Ciber SLasH

Joined: 20 Aug 2005 Posts: 209 Location: С.-Петербург
|
(Separately) Posted: Fri Dec 06, 2013 07:01 Post subject: |
|
|
sa
FileX тоже пригодился.
В общем задачу решил: FileX + script
секция [CustomFields] wincmd.ini:
Code: | Headers1=Путь (последние 3 каталога)\nПуть (без первых 3 каталогов)
Contents1=[=filex.GtGrandPaDir"\"][=filex.GrandPaDir"\"][=filex.ParentDir"\"]\n[=script.Result]
Options1=-1|1 |
script.ini
Code: | [Script]
Section=getPartialPath
[getPartialPath]
Script=.\Scripts\getPartialPath.js
LongName=1 |
getPartialPath.js
Code: | 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('\\'));
} |
Добавлено спустя 2 часа 1 минуту:
Пришлось переделывать, не везде JS-скрипт отрабатывал.
Переделал на VBS (т.к. объект WScript в JS не доступен - ругань на WScript.CreateObject):
Code: | 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 |
|
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Dec 06, 2013 13:28 Post subject: |
|
|
Ciber SLasH wrote: | объект WScript в JS не доступен | Для этого есть new ActiveXObject. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
Serge Yolkin
Joined: 25 Jul 2009 Posts: 664
|
(Separately) Posted: Sat Dec 07, 2013 16:10 Post subject: |
|
|
Точно, причём сам WScript недоступен в script плагине и для VBS. |
|
Back to top |
|
 |
|