Гаечный ключ на 36

Есть такая интересная клавиатура — Microsoft Natural Ergonomic Keyboard 4000. Живет у меня с древних лет. Удобная, красивая и т.д. Но есть одна неприятность: тупой джойстик масштабирования. Он мне не нужен, а вот скролл пригодился бы. В стандартных настройках такой фичи нет. Будем делать руками. Итак, задача: сделать скролл из зума. Для такой нехитрой переделки открываем commands.xml в каталоге с интелли тайп (обычно %PROGRAMFILES%\Microsoft IntelliType Pro).
Прибиваем в списке процессов itype.exe и удаляем все строки, содержащие
<C319 type="6" Activator="ZoomIn" />
<C320 type="6" Activator="ZoomOut" />

выбрать нужное можно с помощью комманды type commands.xml | find /v "C319" | find /v "C320" > commands2.xml
Далее, в файле commands2.xml добавляем в /DPGCmd/ALL/Application[UniqueName="StandardSupport"] строки
<C319 type="6" Activator="ScrollUp" />
<C320 type="6" Activator="ScrollDown" />

переименовываем новый файл в commands.xml и запускаем itype.exe.

WScript.StdOut | WScript.StdIn

Пользователи Windows часто бывают обделены возможностью создания полноценных сценариев с использованием bash, perl или php. Поэтому приходится использовать то что есть. В Windows есть Windows Script. Эта штуковина поддерживает JavaScript или VBScript сценарии. Где-то слышал, что ActivePerl тоже можно. Очень интересно.

Вот, к примеру, нам нужно используя только стандартные средства изменить формат текстового лога. На входе у нас есть оригинальный файл, список замен и правила преобразования.

Оригинальный файл содержит время прохода сотрудника:

007 01.04.08 07:39:59 0 00 Леоненко Александра Владимировна
007 01.04.08 07:41:53 0 00 Шарифов Рустам Тофикович
007 01.04.08 07:42:30 0 00 Емельянова Татьяна Викторовна
007 01.04.08 07:42:37 0 00 Лопухов Дмитрий Владимирович
007 01.04.08 07:43:28 0 00 Власова Елена Александровна
007 01.04.08 07:47:27 0 00 Казакова Екатерина Алексеевна
007 01.04.08 07:47:30 0 00 Черкасова Наталья Юрьевна
007 01.04.08 07:47:47 0 00 Красилов Павел Александрович

Список сотрудников экспортирован из 1С (текст, разделенный табуляцией):

Советникова Наталья Викторовна	Ювелир-монтировщик	0000000028
Сычева Марина Юрьевна	Ювелир-монтировщик	0000000072
Сычугова Наталья Владимировна	Кладовщик на складе ценников	0000000027
Сычугова Татьяна Валерьевна	Контролер по качеству	0000000030
Тарлакова Валентина Валерьевна	Ювелир-полировщик	0000000032
Тымчишин Наталья Васильевна	Кладовщик на складе ценников	0000000060
Упорова Татьяна Ивановна	Уборщица	0000000063
Фомина Ирина Николаевна	Ювелир-монтировщик	0000000059

Задача: Преобразовать файл для удобной загрузки в mysql. Выходной файл должен быть следующего вида:

2008-04-01 07:39:59	16
2008-04-01 07:41:53	54
2008-04-01 07:42:30	13
2008-04-01 07:42:37	44
2008-04-01 07:43:28	0
2008-04-01 07:47:27	6
2008-04-01 07:47:30	28
2008-04-01 07:47:47	60

Дата в формате YYYY-MM-DD hh:mm:ss и вместо ФИО — табельный номер

Очень просто выполнить такую операцию используя объект WScript.StdIn

var cin = WScript.StdIn;
var input = cin.ReadAll();

Теперь в input содержится содержимое стандартного ввода. Отправить файл в стандартный ввод можно выполнив команду
cscript //nologo script.js < eventlog.txt
cscript вывалит результат работы в стандартный поток вывода. Не забыть перенаправить этот вывод в файл.
cscript //nologo script.js < eventlog.txt > outfile.txt

Остается только загрузить выходной файл в mysql.
load data local infile 'outfile.txt' into table `eventlog` character set cp1251 lines terminated by '\r\n';

Скачать архив с кодом

Опубликовано в JavaScript. Метки: . Нет комментариев »