16 липня 2013

Реєстрація усіх файлів *.ocx однією командою. How-To.




Стало необхідним зареєструвати в системі трошки файлів, але виконання операції з кожним окремо мене б втомило, бо файлів майже чотири десятки і всі з невимовними назвами:).

Команда для реєстрації, наприклад, файлу %windir%\system32\MSCOMCTL32.OCX виглядає так:
regsvr32 %windir%\system32\MSCOMCTL32.OCX

Якщо треба зробити так, щоб не з’являлося повідомлення про успішну реєстрацію, і щоб не натискати потім на ОК, додаємо параметр "/s" - silent (тихий режим без повідомлень):
regsvr32 /s %windir%\system32\MSCOMCTL32.OCX

І постає питання що ж потрібно зробити, щоб не писати ім’я кожного файлу (бо це реально втомлює). Тож, для того, щоб зареєструвати усі файли в тому самому каталозі достатньо виконати лише одну команду:
for /f %i in ('dir %windir%\system32\*.ocx /b') do regsvr32 /s %windir%\system32\%i

Розберемося по пунктах, що ж відбувається при виконанні цієї команди:

  1.  for /f %i in ('команда1') do команда2 виконує певную дію "команда2" з кожним елементом результату виконання "команди1". При чому "кожний елемент" передається до "команди2" через змінну "%i".
  2.  dir %windir%\system32\*.ocx /b - "команда1"
    формує перелік файлів типу *.ocx, що містяться в каталозі "%windir%\system32\"


Виконання такої команди забирає лише декілька секунд. 


Сергій Горіченко


Немає коментарів:

Дописати коментар