有没有一种方法可以在PowerShell中定义变量,以便当我打开新的PowerShell窗口时,它仍保持相同的值?
我需要这个变量保持它的值,因为我需要不时重新启动我的服务器,并且我不想失去这些值。
有没有一种方法可以在PowerShell中定义变量,以便当我打开新的PowerShell窗口时,它仍保持相同的值?
我需要这个变量保持它的值,因为我需要不时重新启动我的服务器,并且我不想失去这些值。
存储:
$variable|export-clixml -path $Location
获取数据的方法:
$variable = import-clixml -path $Location
function LoadTHEvariable($location)
{
$global:variable = import-clixml -path $Location
}
$location 显然包含了你想要存储变量的文件系统位置。svn merge -c 100 $someBranchName
- mwilson您是否考虑过其他备选方式来存储变量? PowerShell中的变量通常只持续到PowerShell会话结束。但是,PowerShell可以轻松查询几种旨在更长时间持久化的其他来源。特别是注册表和文件系统。
对于要在重启后持续存在的变量,我建议将其存储在注册表中,然后使用PowerShell查询该值(可能在会话变量中缓存)。
变量是一个容器,你可以创建并告诉PowerShell你想让这个容器成为一个文件。 ${c:\variableToKeep.txt} = '我想保留这个值'
每次想要获取内部的值,只需调用变量 ${c:\variableToKeep.txt}
你可以将这个文件放在共享文件夹中或在机器之间复制它,你可以在任何机器上读取和写入该变量。
使用Add-Content命令,您可以轻松实现。这里的关键是PowerShell配置文件,可以通过$profile[.host]访问,它是一个预定义变量,指向用户状态信息(永久)存储在ROM文件中的路径。最后的-Force参数非常重要,以便覆盖尚未创建$profile变量的情况。
Add-Content -Path $profile -Value $directorysnapshot -Force