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 

Выделение файлов через один
Goto page 1, 2, 3 ... 9, 10, 11  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
antabu



Joined: 15 Sep 2005
Posts: 162
Location: Новосибирск

Post (Separately) Posted: Mon Jun 25, 2012 12:37    Post subject: Выделение файлов через один Reply with quote

Подскажите, пожалуйста, как выделить (или найти), например, все чётные файлы в папке, а то я с явовскими скриптами не в ладах.

 !  CaptainFlint:
Тема перенесена в "Автоматизацию".

_________________
antabu
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Mon Jun 25, 2012 12:59    Post subject: Reply with quote

http://forum.wincmd.ru/viewtopic.php?p=86397#86397
Back to top
View user's profile Send private message
Mellomann



Joined: 07 Sep 2009
Posts: 681

Post (Separately) Posted: Mon Jun 25, 2012 13:13    Post subject: Reply with quote

Insert + Вниз + Insert + Вниз + Insert + Вниз + Insert + Вниз + ... Laughing
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2439
Location: Большая деревня Москва

Post (Separately) Posted: Mon Jun 25, 2012 13:35    Post subject: Reply with quote

http://powerpro.wincmd.ru/Scripts/MarkStep.htm
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2081

Post (Separately) Posted: Mon Jun 25, 2012 13:37    Post subject: Reply with quote

antabu
Например, скриптом отсюда.
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Mon Jun 25, 2012 13:53    Post subject: Reply with quote

sa
Тут речь только о файлах.
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1011
Location: Донецк

Post (Separately) Posted: Mon Jun 25, 2012 16:43    Post subject: Reply with quote

Quote:
Тут речь только о файлах.

Возможно, хотя явно и не указано нужно ли выделять только "обычные" файлы или все файлы (включая каталоги, которые являются частным видом файлов).

Ещё вариант, с использованием сторонних утилит, тормознутый, но портабельный, без WSH Helper (может, подойдёт).
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Mon Jun 25, 2012 17:59    Post subject: Reply with quote

LonerD
Частный вид тут в контекст не вписывается.
С WSH Helper тоже можно добиться портабл. Wink
Back to top
View user's profile Send private message
antabu



Joined: 15 Sep 2005
Posts: 162
Location: Новосибирск

Post (Separately) Posted: Tue Jun 26, 2012 06:56    Post subject: Reply with quote

Благодарю откликнувшихся. Поскольку файлы пронумерованы - воспользовался штатными средствами, советом Mellomann один раз, далее сохраняю выделение в текстовый файл и использую его многократно. Если число файлов в папке не превышает первоначальное - всё проходит.
_________________
antabu
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2081

Post (Separately) Posted: Tue Jun 26, 2012 16:28    Post subject: Reply with quote

antabu wrote:
(или найти)
Можно сохранить шаблон поиска со строкой “Искать файлы:” вида IMG_\d*[02468]\.JPG и с галкой для “Рег. выраж.” Затем кнопкой с командой LOADSEARCH Имя шаблона находить нужные файлы и выводить их на панель. (В моём примере ищутся фото с чётными номерами: IMG_0002.JPG, IMG_4.JPG и т.п.)
P.S.
Этот же шаблон можно использовать и для выделения, и в качестве фильтра.
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2081

Post (Separately) Posted: Mon Feb 09, 2015 21:39    Post subject: Reply with quote

Предложение от Mellomann
Quote:
Insert + Вниз + Insert + Вниз + Insert + Вниз + Insert + Вниз + ... Laughing
+ утилита TCFS2 навеяли кнопку:
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe /ef "run_item(locktc,1) tcm(524)
loop(@<=1000 + send(`{INSERT}{DOWN 1}`)) run_item(locktc,0) redraw"
WCMICONS.DLL,39
Выделить элементы (числом не более указанного после @) с заданным интервалом (число после DOWN), начиная с элемента под курсором


-1
В конце списка может потребоваться ручная правка, поскольку последний элемент может быть выделен/невыделен ошибочно.
Back to top
View user's profile Send private message
helb



Joined: 08 Oct 2014
Posts: 35

Post (Separately) Posted: Thu Feb 19, 2015 18:52    Post subject: Reply with quote

Я тоже, кстати, не пользуясь всяким внешним софтом, сделал простенький скрипт (подобный вроде где-то в общей теме по скриптам пробегал):
Выделяем всё с первого по последний, запускаем скрипт, и он жмет нужные клавиши за нас, снимая выделение с ненужных файлов. Выделение должно быть сплошным (хотя, думаю, иное решаемо с помощью cm_ShowOnlySelected и cm_SaveSelection). Для работы нужен назначенный хоткей для cm_GotoNextSelected, чтобы переходить к началу выделения. Единственное, не будет корректно выделять там где первый пункт не «..» (в корне), и выделение начинается с него, но это на практике особо смысла и не имеет.
Code:
' zebra-mark.vbs (by helb)
' Помечает выделенные подряд файлы через один.
' В TC должен быть назначен хоткей на cm_GotoNextSelected (в данном случае Ctrl+Home), и, соответственно, указан в скрипте (^{Home}) (Ctrl=^,Shift=+,Alt=%)
' TC Parameter: %L
set FSO = CreateObject("Scripting.FileSystemObject")
set list = FSO.OpenTextFile(WScript.Arguments(0), 8, false)
cnt = list.line - 1
if cnt < 2 then WScript.Quit
with WScript.CreateObject("WScript.Shell")
   'go to first selected: Home & cm_GotoNextSelected
   .SendKeys "{Home}^{Home}"
   cnt = cnt / 2
   for i = 1 to cnt
      .SendKeys "{Down}{Insert}"
   next
end with
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Thu Feb 19, 2015 18:59    Post subject: Reply with quote

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



Joined: 29 Apr 2009
Posts: 2081

Post (Separately) Posted: Fri Feb 20, 2015 10:25    Post subject: Reply with quote

helb
Заметил, что выделение сбрасывается в системных папках и при показе только выделенных объектов. В последнем случае сбрасывается и сам режим показа только выделенных.
Наверное, это плата за параметр %L…
Back to top
View user's profile Send private message
helb



Joined: 08 Oct 2014
Posts: 35

Post (Separately) Posted: Fri Feb 20, 2015 12:32    Post subject: Reply with quote

Да, из-за передачи листа происходит рефреш, и если что-то изменилось, выделение сбрасывается. Для отфильтрованной панели это всегда так.
Можно в конце после цикла
Code:
.SendKeys "<хоткей для cm_SaveSelection>"
добавить и восстанавливать запомненное выделение после сброса.

Еще вариант не с листом, а списком в командной строке — тут лимит примерно в 2500 файлов, но форсированного обновления нет:
Code:
' zebra-mark.vbs (by helb)
' Помечает выделенные подряд файлы через один.
' В TC должен быть назначен хоткей на cm_GotoNextSelected (в данном случае Ctrl+Home), и, соответственно, указан в скрипте (^{Home}) (Ctrl=^,Shift=+,Alt=%)
' TC Parameter: %s (лимит в ~2500 файлов)
cnt = WScript.Arguments.length
if cnt < 2 then WScript.Quit
with WScript.CreateObject("WScript.Shell")
   'go to first selected: Home & cm_GotoNextSelected
   .SendKeys "{Home}^{Home}"
   cnt = cnt / 2
   for i = 1 to cnt
      .SendKeys "{Down}{Insert}"
   next
end with
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page 1, 2, 3 ... 9, 10, 11  Next
Page 1 of 11

 
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