1 (изменено: jite, 2010-09-27 06:39:57)

Тема: OFF: Запуск скриптов в консольном режиме, не закрывая окон сразу

Давно искал способ запустить vbs/js скрипт в консоли, с одной стороны так чтобы она закрывалась сама, с другой, чтоб не сразу.

Пользуюсь Far. Казалось бы, чем не подходит - просто запустить скрипт, сделав cscript обработчиком в ОС по умолчанию или настроив его в ассоциациях Far. А вот не всегда удобно даже под Far: у обычной консоли есть (и нет под Far) довольно большой проматываемый буфер вывода, которым хорошо пользоваться при больших объемах вывода.
Это, конечно, частности отдельной программы, однако иллюстрирует, что даже при работе с консольными приложениями возникает необходимость в отдельном cmd-окне...

Простейший способ - просто запустить вызвать cmd с нужным путем:

start cmd "путь к папке со скриптом"

Но ведь это окно потом ручками закрывать надо. Хотелось, чтобы после выполнения вставала на паузу, а по нажатии любой клавиши закрывалась (как в VisualStudio при разработке консольных приложений).

Создаем файл ss.cmd (произвольное короткое имя) и помещаем в одну из папок, упомянутых в %path%:

cmd /c cscript %* &pause

Теперь откуда угодно "пишем" (читай "вставляем имена файлов из файлового менеджера") скрипт js или vbs с любым числом аргументов предваряя его "ss " и получаем отдельное cmd-окно с паузой после выполнения.

Примечание для Far. Для запуска скрипта (без аргументов ) создаем тип *.js,*.vbs и делаем для него следующую ассоциацию (Меню\Команды\Ассоциации файлов) на одно из сочетаний клавиш: start cmd /c ss "!.!"

Все оказалось довольно просто. Но почему-то решение нашлось далеко-о не сразу, поэтому решил что стоит его описать... А может кто еще расскажет о комфортных способах отладки и просмотра результатов исполнения скриптов?

2

Re: OFF: Запуск скриптов в консольном режиме, не закрывая окон сразу

jite пишет:

Пользуюсь Far. Казалось бы, чем не подходит - просто запустить скрипт, сделав cscript обработчиком в ОС по умолчанию или настроив его в ассоциациях Far. А вот не всегда удобно даже под Far: у обычной консоли есть (и нет под Far) довольно большой проматываемый буфер вывода, которым хорошо пользоваться при больших объемах вывода.

С полгода как уже научился: Far работает с большим буфером консоли!.

А про cscript+pause у нас была тема.

3

Re: OFF: Запуск скриптов в консольном режиме, не закрывая окон сразу

P.S. Про:

edit:<cscript.exe //nologo <PathToFile> <Arguments>

или «view:<…», работающем и в старом Far'е [когда нет ввода данных], думаю, Вы знаете.

4

Re: OFF: Запуск скриптов в консольном режиме, не закрывая окон сразу

Тема: Сообщение нельзя закрыть определенное количество времени

Каждому конечно же сразу ясно, что в теме с таким названием обсуждается проблема неинформативности запуска скриптов в консольном режиме
Для чисто поисковых целей сделаю здесь своеобразные теги: как оставить окно открытым, не закрывать окно после запуска скрипта.

Только Far 2.0. Но таки-да - работает! И этим вроде бы решает все вопросы удобного запуска скриптов с последующим просмотром, по крайней мере, если по ум. поставить обработчик cscript. Тогда можно обойтись без ассоциаций и на ходу править аргументы.
Еще один повод переехать с 1.70...

Far Manager, Ы-ыыыы!

Ыыы!

Ну а вариации "cmd & pause" будут полезны если нужен wscript по ум., а также при работе с GUI-образным файловым менеджером.

5

Re: OFF: Запуск скриптов в консольном режиме, не закрывая окон сразу

jite пишет:

Каждому конечно же сразу ясно, что в теме с таким названием обсуждается проблема неинформативности запуска скриптов в консольном режиме wink

К чему ирония?! Да, отнюдь не ясно; во всяком случае, мне пришлось перепробовать несколько поисковых запросов, прежде чем нашёл. Я ведь вовсе не к тому, чтобы ткнуть Вас носом, а токмо дабы сослаться на наличествующий материал.

OFF:

jite пишет:

Еще один повод переехать с 1.70...

Вы даже на 1.75 не перешли?! Там весьма много изменений по сравнению со старым релизом. Я же, буквально на днях, после восстановления машины, попробовал-таки переползти на 2.0. По сравнению с моими предыдущими пробами (когда версия звалась ещё 1.80, и другой раз — что-то около полутора лет назад) — вполне себе нормально: падать нынче вовсе не падает, нужные плагины работают (в том числе и некоторые старые, непортированные — через враппер). Ну, а про куда более расширенный макроязык в юникодном Far'е и говорить нечего — там весьма и весьма много вкусностей добавилось.

6

Re: OFF: Запуск скриптов в консольном режиме, не закрывая окон сразу

Вижу по разговору, что тема постепенно перетекает в сторону Far. Знаете, я тоже до сих пор сижу на 1.70 бета 5. В целом, даже эта версия для меня достаточна. Есть две вещи, которые заставляют меня периодически посматривать в строну версии 2:
1. свобода работы с юникодом;
2. заявленная возможность просмотра буфера вывода.
Но первая проблема имеет низкий приоритет -- сам в юникоде пишу очень редко. А вот вторая проблема более важна -- хотя есть обходные решения view:< и edit:<. Но хотелось бы полноценный буфер скролить.

Так и стоит у меня два Far. Хорошо что не конфигурации не пересекаются. Кстати я так и не понял, как сделать так чтобы буфер стал "резиновым", но при этом панели не растягивались?

( 2 * b ) || ! ( 2 * b )

7

Re: OFF: Запуск скриптов в консольном режиме, не закрывая окон сразу

Rumata пишет:

...как сделать так чтобы буфер стал "резиновым", но при этом панели не растягивались?

* качаем свежую версию 2.0 (поддержка идет с билда 1564),
* запускаем с ключом /w,
* во вкладке Расположение свойств окна увеличиваем высоту буфера к примеру раза в 2 больше высоты окна
Непременно появится верт. скроллбар, но рабочая область Far'а растянется на видимую область окна (а не на весь буфер, как в старых версиях, оставив видимой только нижнюю часть). При этом после Ctrl+O можно поскроллить буфер как в cmd, ну или клавишами.

8

Re: OFF: Запуск скриптов в консольном режиме, не закрывая окон сразу

Ага. Понял свою ошибку - у меня была более ранняя версия - что-то около 14хх, поэтому и не работало. Вот с новым, 1666, сразу пошло. Очень приятно радует глаза и руки. Пока поставил буфер на 5000. Обнаружил незначительный недостаток -- отсутствует промотка в начало или конец буфера, например, по CTRL-ALT-HOME - в начало? CTRL-ALT-END или ESC - в конец буфера, но можно по двойному CTRL-O (хотя работают любые цифро-буквенные клавиши).

Ох, кажетсяч совсем не по теме рассуждаю.

( 2 * b ) || ! ( 2 * b )

9

Re: OFF: Запуск скриптов в консольном режиме, не закрывая окон сразу

Rumata пишет:

Вижу по разговору, что тема постепенно перетекает в сторону Far.

Да, оффтопик. Ну, пусть и у модератора будут какие-то маленькие радости .

Rumata пишет:

Кстати я так и не понял, как сделать так чтобы буфер стал "резиновым", но при этом панели не растягивались?

Запустить достаточно свежую сборку 2.0 с параметром «/w» (или сделать настройку в реестре, как описано в Far работает с большим буфером консоли!).