Как сохранить переменные к диску, таким образом, можно использовать их в следующий раз выполнения сценария PowerShell?

(Относительно) новая парадигма Разработки программного обеспечения под названием Доменный Управляемый дизайн, делает различие между объектами объекта и объектами значения.

Объекты Объекта определяются как что-либо, что должно отобразиться на кнопочный объект в персистентном хранилище данных, как сотрудник, или клиент или счет, и т.д...., где изменение свойств объекта подразумевает, что необходимо сохранить изменение в хранилище данных где-нибудь и существование нескольких экземпляров класса с тем же "ключом" imnplies потребность синхронизировать их, или скоординировать их персистентность к хранилищу данных так, чтобы один экземпляр' изменения не перезаписывал другие. Изменение свойств объекта объекта подразумевает изменение чего-то об объекте - не изменение, КОТОРЫЕ возражают, что Вы ссылаетесь...

otoh объектов Значения, объекты, которые можно считать неизменными, чья утилита определяется строго их значениями свойств, и для которого несколько экземпляров, не должны быть скоординированы всегда... как адреса, или номера телефона или колеса на автомобиле, или буквы в документе... эти вещи полностью определяются их свойствами... верхний регистр ',' объектом в текстовом редакторе можно обменяться прозрачно с любым другим верхним регистром объект всюду по документу, Вам не нужен ключ для различения его от всех других, 'A В этом смысле это неизменно, потому что при изменении его на 'B' (точно так же, как, меняя струну номера телефона в объекте номера телефона, Вы не изменяете данные, связанные с некоторым изменяемым объектом, Вы переключаетесь от одного значения до другого... так же, как, когда Вы изменяете значение строки...

11
задан SilverViper 22 October 2009 в 09:48
поделиться

1 ответ

$foo | Export-CliXml foo.xml

затем позже

$foo = Import-CliXml foo.xml

Обратите внимание, что если $ foo представляет живой объект, при его восстановлении вы получите только его свойства. Однако информация о типе более или менее сохраняется. Например, если вы сохраните объект System.Diagnostics.Process, при его регидратации у вас будет объект Deserialzed.System.Diagnostics.Process.

Кстати, если вам нужно сохранить / получить несколько переменных, вы можете сделать это как так:

Get-Variable bla* | Export-Clixml vars.xml
Import-Clixml .\vars.xml | %{ Set-Variable $_.Name $_.Value }
28
ответ дан 3 December 2019 в 03:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: