Выделение файлов через один
Select messages from
# through # FAQ
[/[Print]\]
Goto page 1, 2, 3 ... 10, 11, 12  Next  :| |:
Total Commander -> Автоматизация Total Commander

#1: Выделение файлов через один Author: antabuLocation: Новосибирск PostPosted: Mon Jun 25, 2012 12:37
    —
Подскажите, пожалуйста, как выделить (или найти), например, все чётные файлы в папке, а то я с явовскими скриптами не в ладах.

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

#2:  Author: FlasherLocation: Москва PostPosted: Mon Jun 25, 2012 12:59
    —
http://forum.wincmd.ru/viewtopic.php?p=86397#86397

#3:  Author: Mellomann PostPosted: Mon Jun 25, 2012 13:13
    —
Insert + Вниз + Insert + Вниз + Insert + Вниз + Insert + Вниз + ... Laughing

#4:  Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Mon Jun 25, 2012 13:35
    —
http://powerpro.wincmd.ru/Scripts/MarkStep.htm

#5:  Author: sa PostPosted: Mon Jun 25, 2012 13:37
    —
antabu
Например, скриптом отсюда.

#6:  Author: FlasherLocation: Москва PostPosted: Mon Jun 25, 2012 13:53
    —
sa
Тут речь только о файлах.

#7:  Author: LonerDLocation: Донецк PostPosted: Mon Jun 25, 2012 16:43
    —
Quote:
Тут речь только о файлах.

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

Ещё вариант, с использованием сторонних утилит, тормознутый, но портабельный, без WSH Helper (может, подойдёт).

#8:  Author: FlasherLocation: Москва PostPosted: Mon Jun 25, 2012 17:59
    —
LonerD
Частный вид тут в контекст не вписывается.
С WSH Helper тоже можно добиться портабл. Wink

#9:  Author: antabuLocation: Новосибирск PostPosted: Tue Jun 26, 2012 06:56
    —
Благодарю откликнувшихся. Поскольку файлы пронумерованы - воспользовался штатными средствами, советом Mellomann один раз, далее сохраняю выделение в текстовый файл и использую его многократно. Если число файлов в папке не превышает первоначальное - всё проходит.

#10:  Author: sa PostPosted: Tue Jun 26, 2012 16:28
    —
antabu wrote:
(или найти)
Можно сохранить шаблон поиска со строкой “Искать файлы:” вида IMG_\d*[02468]\.JPG и с галкой для “Рег. выраж.” Затем кнопкой с командой LOADSEARCH Имя шаблона находить нужные файлы и выводить их на панель. (В моём примере ищутся фото с чётными номерами: IMG_0002.JPG, IMG_4.JPG и т.п.)
P.S.
Этот же шаблон можно использовать и для выделения, и в качестве фильтра.

#11:  Author: sa PostPosted: Mon Feb 09, 2015 21:39
    —
Предложение от 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
В конце списка может потребоваться ручная правка, поскольку последний элемент может быть выделен/невыделен ошибочно.

#12:  Author: helb PostPosted: Thu Feb 19, 2015 18:52
    —
Я тоже, кстати, не пользуясь всяким внешним софтом, сделал простенький скрипт (подобный вроде где-то в общей теме по скриптам пробегал):
Выделяем всё с первого по последний, запускаем скрипт, и он жмет нужные клавиши за нас, снимая выделение с ненужных файлов. Выделение должно быть сплошным (хотя, думаю, иное решаемо с помощью 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

#13:  Author: FlasherLocation: Москва PostPosted: Thu Feb 19, 2015 18:59
    —
helb wrote:
подобный вроде где-то в общей теме по скриптам пробегал
Ссылки на скрипты и так все собраны в этой теме.

#14:  Author: sa PostPosted: Fri Feb 20, 2015 10:25
    —
helb
Заметил, что выделение сбрасывается в системных папках и при показе только выделенных объектов. В последнем случае сбрасывается и сам режим показа только выделенных.
Наверное, это плата за параметр %L…

#15:  Author: helb PostPosted: Fri Feb 20, 2015 12:32
    —
Да, из-за передачи листа происходит рефреш, и если что-то изменилось, выделение сбрасывается. Для отфильтрованной панели это всегда так.
Можно в конце после цикла
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



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page 1, 2, 3 ... 10, 11, 12  Next  :| |:
Page 1 of 12

Powered by phpBB © 2001, 2005 phpBB Group