Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Как вывести в колонке часть пути, а не весь путь?

 
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы printer-friendly view
View previous topic :: View next topic  
Author Message
Ciber SLasH



Joined: 20 Aug 2005
Posts: 209
Location: С.-Петербург

Post (Separately) Posted: Thu Dec 05, 2013 12:45    Post subject: Как вывести в колонке часть пути, а не весь путь? Reply with quote

Приветствую всех!
Подскажите пожалуйста, как вывести в колонку часть пути?
Задача: есть пути C:\Test\1\a; D:\Test\1\b
каким плагином/скриптом вырезать из пути по RegExp-у \w:\\Test\\1\\ и результат поместить в колонку?
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Thu Dec 05, 2013 13:45    Post subject: Reply with quote

Если нужно просто заменить букву диска на другую, можно и без плагинов: w[=tc.Путь:2-].
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Ciber SLasH



Joined: 20 Aug 2005
Posts: 209
Location: С.-Петербург

Post (Separately) Posted: Thu Dec 05, 2013 13:48    Post subject: Reply with quote

Нет, нужно именно вырезать часть пути. Или вывести, к примеру, последние 20 символов из пути.
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2692

Post (Separately) Posted: Thu Dec 05, 2013 14:45    Post subject: Reply with quote

Ciber SLasH wrote:
вывести, к примеру, последние 20 символов из пути

Может, так? [=tc.Путь:-21-]
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Thu Dec 05, 2013 14:46    Post subject: Reply with quote

Ciber SLasH
Плагин так и называется Regexp (там же примеры в ini).
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Ciber SLasH



Joined: 20 Aug 2005
Posts: 209
Location: С.-Петербург

Post (Separately) Posted: Thu Dec 05, 2013 19:37    Post subject: Reply with quote

sa
Благодарю! Тоже вариант.
Flasher
Плагин RegExp не получает полный путь файла, а только имя:
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2692

Post (Separately) Posted: Thu Dec 05, 2013 22:37    Post subject: Reply with quote

Если нужно выделить 2-3 последние папки пути, то можно воспользоваться плагином filex:
[=filex.В подпапке папки]\[=filex.В подпапке]\[=filex.В папке]
Back to top
View user's profile Send private message
Ciber SLasH



Joined: 20 Aug 2005
Posts: 209
Location: С.-Петербург

Post (Separately) Posted: Fri Dec 06, 2013 07:01    Post subject: Reply with quote

sa
FileX тоже пригодился. Wink
В общем задачу решил: 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
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Dec 06, 2013 13:28    Post subject: Reply with quote

Ciber SLasH wrote:
объект WScript в JS не доступен
Для этого есть new ActiveXObject.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Serge Yolkin



Joined: 25 Jul 2009
Posts: 664

Post (Separately) Posted: Sat Dec 07, 2013 16:10    Post subject: Reply with quote

Точно, причём сам WScript недоступен в script плагине и для VBS.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group