yms: (Default)
[personal profile] yms
Поигрался еще с шеллом msh. Нет, это что-то.

Командой

new-provider -Assembly "${MSHHOME}\System.Management.Automation.Core.dll" -Provider REG

загружается новый провайдер псевдофайловой системы, который в нашем случае registry. Теперь делаем

cd hkcu:

и плавно переходим в "каталог" HKEY_CURRENT_USER. Далее команда dir (которая на самом деле является алиасом команды get-children) выдает, правильно, список элементов этого каталога контейнера, в данном случае — список ключей (subkeys). Тут же вспоминается FAR, в котором всё это было сделано в 1997 году, но это ж теперь как бы стандарт и на системном уровне...
В отличие от файлов или Фара, тут команда dir вместо свойств файлов (дата, время, размер и т.д.) выводит колонку Property, в которой выдается список параметров (values) под этим ключом (key). (Уже, между прочим, хуже, чем мой плагин к Фару. Тот даты ключей выдает и т.д.)
Значит, команда dir (или get-children, или gc) выдает список ключей, а как получить список параметров (values)? Правильно, командой get-property, или gp:


CurrentPalette : {112, 7, 116, 12, 113, 113, 112, 7, 116, 12, 112, 127, 112, 116
                 , 23, 31, 112, 23, 116, 116, 124, 112, 126, 112, 112, 126, 48,
(...пропущено...)
                 79, 63, 15, 62, 14, 63, 63, 56, 63}
Path           : REG::HKEY_CURRENT_USER/software/far/colors
ParentPath     : REG::HKEY_CURRENT_USER/software/far
ChildName      : colors
Drive          : HKCU
Provider       : System.Management.Automation.ProviderInfo


здесь CurrentPalette — единственный параметр под этим ключом, да еще и двоичный, всё остальное — системные проперти.

Кстати, команда get-drive, или gdr, выдает после загрузки реестра такой список "драйвов":

name                      provider                  current
----                      --------                  -------
A                         FS
Alias                     Alias
C                         FS
D                         FS
E                         FS
Env                       Env
function                  Hashtable
G                         FS
H                         FS
HKCU                      REG
HKLM                      REG
HT                        Hashtable
I                         FS
L                         FS
M                         FS
N                         FS
O                         FS
P                         FS
Providers                 ProviderProvider
Q                         FS
U                         FS
V                         FS
Variable                  Variable
X                         FS



Новый Фар надо будет делать как надстройку над msh, ессно на .NET, с полным использованием системных объектов и объектов msh. И плагины в первую очередь будут писаться для msh, а Фар их будет использовать.

Profile

yms: (Default)
Michael Yutsis

March 2022

S M T W T F S
  12 345
678910 1112
13141516171819
20212223242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 24th, 2026 09:33 am
Powered by Dreamwidth Studios