еще немного о Microsoft Shell
Поигрался еще с шеллом 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, а Фар их будет использовать.
Командой
new-provider -Assembly "${MSHHOME}\System.Management.Automation.Core.dll" -Provider REG
загружается новый провайдер псевдофайловой системы, который в нашем случае registry. Теперь делаем
cd hkcu:
и плавно переходим в "каталог" HKEY_CURRENT_USER. Далее команда dir (которая на самом деле является алиасом команды get-children) выдает, правильно, список элементов этого
В отличие от файлов или Фара, тут команда 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, а Фар их будет использовать.