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, а Фар их будет использовать.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

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:44 am
Powered by Dreamwidth Studios