powershell脚本备份和恢复用户环境变量Path值


把以下内容保存为backup-restore-EnvVarPath.ps1脚本.
执行 backup-restore-EnvVarPath.ps1 backup 会复写该脚本, 会把$pathValues=”;改写成$pathValues=’备份的内容’;
执行 backup-restore-EnvVarPath.ps1 restore 可以恢复用户环境变量Path值
你试一下就知道了.

param
(
    [Parameter(Mandatory = $true, ValueFromPipeline = $true)]
    [ValidateSet('backup', 'restore')][String]$operation
)

$pathValues='';

switch ($operation) {
    'backup' {
        $pathValues = [System.Environment]::GetEnvironmentVariable("Path", "User")
        $pathValuesNew='$pathValues='+"'$pathValues"+"';"
        $ScriptContents=[String]$MyInvocation.MyCommand.ScriptContents
        $ScriptContents =  $ScriptContents -replace "\`$pathValues\='[^+]*';",$pathValuesNew
        $ScriptContents | Out-File $PSCommandPath -Encoding utf8 -NoNewline
    }
    'restore' {
        if($pathValues -eq ''){
            write-output "please backup first."
        }else{
            [System.Environment]::SetEnvironmentVariable("Path", $pathValues, "User")
            # User是用户环境变量, 改为Machine是系统环境变量
        }
    }
}
本文链接: http://www.pstips.net/backup-and-restore-environment-path.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

发表评论

电子邮件地址不会被公开。 必填项已用*标注