Выделение в папке всех файлов одного расширения
Всем привет. Помогите с бантиком, или команда в реестр. Кнопка в контекстном меню, выделяет в папке все файлы того типа, на которую нажал мышью.
Вот в реестр есть похожие примеры, тоже по типу, только эти удаляют, либо оставляют.
Удалить все, кроме файлов этого типа
cmd.exe /q /c color 17 & (for /f "tokens=*" %%a in ("%1") do (for /f "delims=" %%i in ('dir "%%~dpa" /b /a:d 2^>nul') do rd /s /q "\\?\%%~dpa%%i") & (for /f "delims=" %%i in ('dir "%%~dpa" /b /a:-d 2^>nul ^| findstr /iv "%%~xa"') do del /f /q /a "\\?\%%~dpa%%i"))
Удалить только файлы этого типа
cmd.exe /q /c color 17 & (for /f "tokens=*" %%a in ("%1") do cd /d "%%~dpa" && del /f /q /a "*%%~xa")
А нужно выделение этого типа файлов на который нажал через контекстное меню. Заранее спасибо.
|
Цитата:
Цитата NickM
Можно от данного примера оттолкнуться. »
|
Неа, ошибку выдаёт аж в двух окошках. Подскажите пожалуйста что дополнить-удалить там?
|
Serguei Kouzmine |
05-07-2023 01:38 3011563 |
нужно больше информации - какой такой выделяет-шмыделяет ?
в смылсе - чего хотите добиться в итоге ?
какая изначальную цель ?
|
Цитата:
Цитата Serguei Kouzmine
какой такой выделяет-шмыделяет? »
|
denis19, Сам выделяет и запускает сценарий.
Т.е. пользователю хочется автоматизировать выделение файлов в текущем окне проводника "Windows";
Цитата:
Цитата Serguei Kouzmine
чего хотите добиться в итоге? »
|
Щёлкать по любому файлу в проводнике, вызывать по ПКМ меню, выбирать строчку "Выделить файлы по расширению", к которому присобачен какой-нибудь сценарий, и в проводнике все файлы расширения выделенного файла выделяются;
Цитата:
Цитата Serguei Kouzmine
какая изначальную цель? »
|
Автоматизировать множественное выделение однотипных файлов, файлов с одинаковым расширением.
|
Цитата:
Цитата Serguei Kouzmine
нужно больше информации - какой такой выделяет-шмыделяет ?
в смылсе - чего хотите добиться в итоге ?
какая изначальную цель ? »
|
Как обычная кнопка выделить "все", только эта будет выделять тоже все, но только с тем расширением, на который нажал мышью. А цель, чтоб избавиться от лишних кнопок вариантов удаления, копирования, перемещения и пр. С одной этой "выделить" я уже сам буду делать нужные действия.
|
Цитата:
Цитата denis19
Неа, ошибку выдаёт аж в двух окошках. Подскажите пожалуйста что дополнить-удалить там? »
|
Так ведь это направление, с чего можно было бы начать.
Вот, второе направление.
В итоге, могло бы получиться что-нибудь этакое:
Запуск *.vbs сценария:
Код:
@echo off
set ext=%~x1
set ext=%ext:~1%
set cdir=%~dp0%
cscript //nologo сценарий.vbs "%cdir%" %ext%
Сам *.vbs-сценарий:
Код:
Option Explicit
Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim oList : Set oList = CreateObject("System.Collections.ArrayList")
Dim objShellAPP : Set objShellAPP = CreateObject("Shell.Application")
Dim oItem
GetFileFolder objFSO.GetFolder(WScript.Arguments(0))
With objShellAPP.Windows(objShellAPP.Windows.Count - 1).document
For Each oItem In oList
.SelectItem .Folder.Items.Item(oItem), 17
Next
End With
Sub GetFileFolder(objFolder)
Dim objFile, objSubFolder
For Each objFile In objFolder.Files
If LCase(objFSO.GetExtensionName(objFile.Name)) = WScript.Arguments(1) Then
oList.Add objFile.Name
End If
Next
End Sub
Специалисты в теме, полагаю, предложат правильный вариант, а здесь просто копи-паст.
|
Serguei Kouzmine |
05-07-2023 16:33 3011608 |
к которому присобачен какой-нибудь сценарий...
я уже сам буду делать нужные действия.
о заколачивании гвоздей микроскопом мечтаете
(другими словами)
напишите ярлык в котором скриптюня в котором комдана
Код:
сделать то что надо %~d1 *.%~x1.
и его вызывайте
|
Ни тот ни другой не работает. Я не понял как из запускать. Может их объединять надо?
|
Вложений: 1
Цитата:
Цитата denis19
Ни тот ни другой не работает. Я не понял как из запускать. Может их объединять надо? »
|
Работает именно так как и заявлено, смотрим:
Файл 168603
|
Цитата:
Цитата NickM
Работает именно так как и заявлено, смотрим: »
|
А меня почему то нет. Перепробовал все команды и в разных файлах, перетаскиванием на vbs и cmd и кнопка из реестра, не фурычит. Так же в реестре команды запуска скриптов разные, wscript //nologo my_script.vbs и cscript //nologo my_script.vbs. Но никак.
https://cloud.mail.ru/public/UT5p/mQFdY84yj
|
1. Вы файлу *.vbs-сценария дали одно наименование:
,а в "Выделить.cmd" вызываете как:
2. Раз в файле "Выделить.cmd" используется кириллица, то кодировку ему следует задавать как CP866.
|
Цитата:
Цитата NickM
Раз в файле "Выделить.cmd" используется кириллица, то кодировку ему следует задавать как CP866. »
|
Да разные имена делал. Но нет.
|
Цитата:
Цитата denis19
Да разные имена делал. Но нет. »
|
Приложите, то, что Вы сделали, после сказанного Мною выше.
|
Вложений: 1
Цитата:
Цитата NickM
Приложите, то, что Вы сделали, после сказанного Мною выше. »
|
Я же сказал, и команды и имена у файлов самые разные, и wscript //nologo my_script.vbs и cscript //nologo my_script.vbs, и коротко vbs и cmd. http://forum.oszone.net/attachment.p...1&d=1688645790
|
Прикрепите содержимое в архиве, как прикрепляли ранее - погляжу и подскажу в чём ошибка.
|
Цитата:
Цитата NickM
Прикрепите содержимое в архиве, как прикрепляли ранее »
|
А видео то видели в облаке? (тут не смог выложить). Там только самый верхний cmd срабатывает какой то скрытый процесс, но непонятно что именно происходит. Что ещё и куда именно прикрепить?
[IMG]file:///C:/Users/Admin/Desktop/%D0%9D%D0%BE%D0%B2%D0%B0%D1%8F%20%D0%BF%D0%B0%D0%BF%D0%BA%D0%B0/COPYtext/%D0%9D%D0%BE%D0%B2%D0%B0%D1%8F%20%D0%BF%D0%B0%D0%BF%D0%BA%D0%B0%20(2)/%D0%94%D0%B5%D0%BC%D0%BE%D0%BD%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D1%8F.gif[/IMG]
|
Цитата:
Цитата denis19
Там только самый верхний cmd срабатывает какой то скрытый процесс, но непонятно что именно происходит. »
|
Именно на содержимое этого архива и был дан этот ответ;
Цитата:
Цитата denis19
Что ещё и куда именно прикрепить? »
|
Таким же образом как и ранее, выложите в облако Ваш конченый вариант, с Вашими конечными правками;
+
Исправил недочёт *.cmd-сценарии, в части определения расширения (что-то упустил из виду, что расширение бывает и больше 3-х символов):
|
А куда ставить или заменять вместо чего? Как в итоге будет выглядеть? У меня уже мозги пухнут. :(
|
Цитата:
Цитата denis19
А куда ставить или заменять вместо чего? Как в итоге будет выглядеть? »
|
Весь код в этом посте;
Цитата:
Цитата denis19
У меня уже мозги пухнут. »
|
Цитата:
Цитата NickM
Таким же образом как и ранее, выложите в облако Ваш конченый вариант, с Вашими конечными правками; »
|
|
Вы проигнорировали:
Цитата:
Цитата NickM
2. Раз в файле "Выделить.cmd" используется кириллица, то кодировку ему следует задавать как CP866. »
|
Что здесь не понятно?
Либо сохраняйте *.cmd в указанной кодировке, либо не используйте кириллицу.
В остальном всё работает.
|
Цитата:
Цитата NickM
В остальном всё работает. »
|
Вот сейчас работает. Но только перетаскиванием.
Как теперь можно бантик привязать к кнопке в контекстное меню в реестре? Уже пробовал, никак.
|
Цитата:
Цитата denis19
Как теперь можно бантик привязать к кнопке в контекстное меню в реестре? »
|
Даже и не в курсе;
Что именно пробовали?
|
Путь к бантику в реестр, чтоб выделять кнопкой из контекстного меню. Думаю там не просто путь, строку чем то дополнять надо, как например wscript.exe, или кавычки-проценты "%1". Такими не хочет работать.
|
Всё, запуск из реестра сам доделал, это путь в кавычках, а в конце "%1". Но заметил что это работает только в той папке где лежат эти бантик и скрипт. Как можно запускать в любой папке?
|
Вложений: 1
Цитата:
Цитата denis19
Но заметил что это работает только в той папке где лежат эти бантик и скрипт. »
|
Всё верно, размещайте по нужному пути, и дорабатывайте сценарий.
Следует понимать - Вам подсказали один из возможных вариантов, а не готовое решение.
В конечном случае можно использовать только *.vbs сценарий и это может выглядеть так, например:
Файл 168605
|
Цитата:
Цитата NickM
.vbs сценарий и это может выглядеть так, например: »
|
Ладно. Спасибо хоть за это. Только не понял что на видео нового, вроде так же. Что там по другому?
|
Цитата:
Цитата denis19
Только не понял что на видео нового »
|
Ничего нового - просто как итог темы;
В принципе ничего - показан пункт меню и работа сценария, который был разработан на том vbs-коде, который был упомянут в данной теме.
Вы достигли желаемого?
Поняли, как работает сценарий?
Поняли направление по его модернизации/ улучшению?
|
Почти. Она только в одной папке работает. Спасибо.
|
Вложений: 1
Цитата:
Цитата denis19
Почти. Она только в одной папке работает. »
|
Хмм:
Цитата:
Цитата NickM
Всё верно, размещайте по нужному пути, и дорабатывайте сценарий. »
|
Цитата:
Следует понимать - Вам подсказали один из возможных вариантов, а не готовое решение.
|
Во вложении *.vbs сценарий, который выполняет выделение в текущем окне проводника файлов по расширению, и *.reg файл, который регистрирует пункт меню для указанного выше действия.
Архив распаковать по пути:
Код:
C:\OSZone\SelFilesExt\
Файл 168606
При необходимости задания другого пути размещения файла *.vbs сценария, редактируйте *.reg файл и применяйте его повторно.
|
Да давно кнопку сделал. Вот ещё как работает.
До
@echo off
set ext=%~x1
set ext=%ext:~1%
set cdir=%~dp0%
cscript //nologo select.vbs "%cdir%" %ext%
И после
@echo off
set "ext=%~x1"
set "ext=%ext:~1%"
cscript //nologo "%~dp0select.vbs" "%cd%" %ext%
Но непонятно почему иногда ошибка выскакивает. Надо папку с файлами закрыть и опять открыть.
|
Цитата:
Цитата denis19
Но непонятно почему иногда ошибка выскакивает. Надо папку с файлами закрыть и опять открыть. »
|
Здесь *.cmd не используется:
Цитата:
Цитата NickM
Во вложении *.vbs сценарий, который выполняет выделение в текущем окне проводника файлов по расширению, и *.reg файл, который регистрирует пункт меню для указанного выше действия. »
|
|
Время: 10:38.
© OSzone.net 2001-