永久PowerShell变量

brqmpdu1  于 2023-01-13  发布在  Shell
关注(0)|答案(7)|浏览(151)

有没有办法在PowerShell中定义一个变量,这样当我打开一个新的PowerShell窗口时,它会保持相同的值?
我需要这个变量保持它的值,因为我需要不时地重新启动我的服务器,我不想丢失这些值。

ztmd8pv5

ztmd8pv51#

储存:

$variable|export-clixml -path $Location

检索:

$variable = import-clixml -path $Location

如果你需要的话,把它放在一个函数中,比如:

function LoadTHEvariable($location)
{
    $global:variable = import-clixml -path $Location
}

$location显然包含了文件系统中您想要存储变量的位置。

jm81lzqq

jm81lzqq2#

您可以将数据存储在PowerShell Profile中。

i7uaboj4

i7uaboj43#

请考虑使用环境变量。

b1zrtrql

b1zrtrql4#

您是否考虑过存储变量的其他替代源?PowerShell中的变量通常只保留PowerShell会话本身的时间。但是,PowerShell可以轻松查询其他几个保留时间更长的源。特别是注册表和文件系统。
对于一个在重新启动后仍然存在的变量,我会将其存储在注册表中,然后使用PowerShell查询该值(可能缓存在会话变量中)。

gijlo24d

gijlo24d5#

变量是一个容器,您可以通过创建来告诉powershell您希望该容器是一个文件。${c:\variableToKeep.txt} = 'I want to keep this value'
每次要获取内部的值时,只需调用变量${c:\variableToKeep.txt}
您可以将此文件放在共享文件夹中或在计算机之间复制它,并且可以在任何计算机上读取和写入该变量。

djmepvbi

djmepvbi6#

要在启动的每个PowerShell会话中创建变量,请将变量添加到PowerShell配置文件中。可以通过在文本编辑器(如notepad.exe)中打开$PROFILE文件,将此命令添加到PowerShell配置文件中。(如果该文件不存在,请在变量指定的位置创建它。)
https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_variables?source=recommendations&view=powershell-7.2#saving-variables

tkqqtvp1

tkqqtvp17#

Add-Content cmdlet已经介绍过了。这里的星星是powershell配置文件,作为$profile[.host]访问,这是一个预定义的变量,指向用户状态信息(永久)存储在rom文件中的路径。末尾的-Force是关键,以便涵盖尚未创建$profile变量的情况。

Add-Content -Path $profile -Value $directorysnapshot -Force

相关问题