![]() |
Winnity — диалог выбора папки или файла из командой строки
Winnity — консольное приложение, показывающее диалог выбора папки или файла, которое можно использовать в командных файлах.
Предположим, командный файл принимает в качестве параметра запуска папку. Привертев к нему Winnity, можно запускать такой командный файл просто щелчком мыши, выбрать папку и дождаться завершения его работы. Пример выбора папки Код:
for /F "delims=" %%i in ('winnity /d') do ( Код:
for /F "delims=" %%i in ('winnity /f') do ( Код:
for /F "delims=" %%i in ('winnity /d') do (set x=%%i ) |
У вас ссылка битая, лишний httр
Цитата:
|
Сразу пустил winnity в дело - пристроил к скрипту, применяющему патчи к одной известной игре. Хотелось бы немного расширить функционал, а именно:
|
Это несложно.
Вопрос только, в каком виде задавать эти параметры? Через ини-файл или через опции командной строки? |
Лучше бы конечно через опции. Например, выбор одиночного файла /F:single, выбор нескольких /F:multi. Маски - работают только при диалоге выбора файла, для директорий это ни к чему. Например, /M "zip rar 7z"
|
Прямо щас напишу
|
Готово
Забирать там же Цитата:
Код:
winnity /f /m /e=*.exe |
Благодарю за изменения, сейчас перекачаю новую версию.
UPD: Скачал, протестировал. Выбор директории работает отлично, как и в предыдущей версии. А вот с файлами что-то не так. При запуске просто с ключом /f, без /e или /m - не выводит выбранный файл, просто не пишет ничего в stdout. При запуске /f /m - дает выбрать несколько файлов, но по прежнему не выводит результата. При запуске с /f /e=*.cab фильтр не применяется, видны файлы с любыми расширениями, соответственно, можно выбрать не подходящий под фильтр. И снова не выводит результат. ОС - Win XP SP3. Запускал такой строкой: For /F "tokens=*" %%I In ('winnity /f') Do (Echo "%%I") |
Цитата:
Цитата:
Код:
For /F "tokens=*" %%I In ('winnity /f "/e=*.cab"') Do (Echo "%%I") |
Вещь полезная в плане того, что после XP выкинули потребные библиотеки, а «comdlg32.ocx» требует лицензирования (хотя и есть и вполне легальный способ его задействовать). Спасибо.
Цитата:
Код:
winnity /f /e="*.exe *.dll *.*" Код:
winnity /f /e:"*.exe *.dll *.*" hb860, можете там же реализовать и поддержку GetSaveFileName? Иногда бывает нужно и такое. Также, возможно, стоит дать возможность задавать текст заголовка диалогового окна. 2All: Вопрос — у меня под XP окно «Open File» отображается под окном командной строки/запущенного пакетного файла. У кого-либо наблюдается подобное? |
Цитата:
|
Iska, нет, не наблюдается, открывается прямо поверх окна командной строки, перехватывая фокус на себя, если из батника вызывать - то же самое.
|
ferget, hta-редактор «Simple HTML editor» из комплектов Visual Studio, Microsoft Platform SDK, либо оффлайновых версий MSDN (я случайно наткнулся и использовал именно последний вариант). Подробности обсуждения изложены в этой теме: VBS: диалоговое окно выбора файла в windows vista & 7.
Впрочем, позже, после уточнения коллеги wisgest, у меня заработал и предложенный AnvarovSR и адаптированный smaharbA вариант: VBS диалог открытия файла не работает на Windows 7. Anonymоus, спасибо, ясно. Значит именно мне так «везёт». |
Цитата:
Цитата:
А в каком сценарии предполагается использование GetSaveFileName? |
Цитата:
Цитата:
Код:
for /f "delims=" %%i in ('winnity /s') do ( P.S. Поправьте, пожалуйста, заголовок темы: «…из командной строки». |
диалоги xp'шные, а у меня 7
|
ferget, ага. В 5ой делфе старое апи обёрнуто.
Iska, я попробую привернуть TSaveDialog. |
Добрый день!
Хотел поблагодарить на проект, действительнр нужная вешь. Так же хотел попросить сделать следующие изменеия: 1. изменить диалоговое окно выбора файлов на на более стандартное 2. когда запускаю программу, то ее значек отображется в панели пуск, рекомендую скрыть значек 3. добавить возможность изменять заголовок окна 4. расширенный набор работы со строкой тип файла. Например, в строке типа файлов указываю "Все поддерживаемые форматы" а это файлы (*.png, *.jpg) |
hb860 не могли бы сделать эти изменения
Цитата:
![]() Цитата:
![]() Цитата:
6. диалоговые окна на подобии Wprompt ![]() |
Мог бы. Времени только не хватает, поэтому вообще ничего не делал :(
|
Программа нужная. Только вот как окно командной строки свернуть?
|
Цитата:
|
Глаза мозолит.
|
Не пользуйтесь пакетными файлами. Или так: Скрываем консольные окна — OSZone.net wiki.
|
Вот бы еще историю выбранных папок и файлов запоминала...
|
бУРов, пишите автору, может реализует. Под Windows XP для истории папок я пользую FlashFolder.
|
А вот возможно ли как-то выяснить, сама winnity доступна?
Если, к примеру, в системе ее нет, то в команднике соотв. отреагировать: for /F "delims=" %%i in ('winnity /d') do ( set DB=%%i ) |
Реагируйте, кто ж мешает. Только, например, так:
Код:
@echo off |
Время: 19:52. |
Время: 19:52.
© OSzone.net 2001-