小黑盒游戏新闻 ( ) • 2024-06-30 19:18

游戏存档路径:%USERPROFILE%/AppData/Local/Pal/Saved/SaveGames/

修改系统时间快速刷新事件。

通过PowerShell脚本,可以快速修改游戏事件,省去系统设置修改时间的繁琐流程。

操作有风险,处理不当会导致透支未来时间!!!

操作有风险,处理不当会导致透支未来时间!!!

操作有风险,处理不当会导致透支未来时间!!!

步骤

1、Win+E打开资源管理器,在地址栏中输入路径:%USERPROFILE%/AppData/Local/Pal/Saved/SaveGames/

2、进入幻兽帕鲁存档目录。

3、进入需要更改的游戏存档路径。

4、新建.ps1文件和SaveGames文件夹。(代码在文末)

5、将代码粘贴至.ps1文件中并保存。

6、将Players文件夹备份至SaveGames文件夹中。

7、运行PowerShell文件。

8、进行相关操作。

代码如下

if (-not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
     Write-Warning "请以管理员权限运行此脚本。"
     Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs
     exit
 }
 Write-Host @"
 *******************************************************************
 *                                                                 *
 * 欢迎使用游戏存档时间修改脚本。                                 *
 *                                                                 *
 * 此脚本将帮助您快速调整系统的时间。                             *
 *                                                                 *
 * 游戏存档路径:%USERPROFILE%/AppData/Local/Pal/Saved/SaveGames/ *
 *                                                                 *
 * 1. 请注意,在使用脚本之前请备份游戏文件,以防止存档损坏。     *
 * 2. 如果修改或同步时间未成功,请再次尝试或手动设置。           *
 * 3. 在修改时间之前,请将Players文件夹备份至SaveGames文件夹内。 *
 * 4. 修改时间时,请确保最后一次运行游戏后进行操作。             *
 *                                                                 *
 *******************************************************************
 "@
 
 function MainMenu {
     Write-Host "请选择一个选项:`n1. 调整系统时间`n2. 替换文件`n3. 同步系统时间`n4. 退出脚本`n"
     $choice = Read-Host "请输入选项编号: "
 
     switch ($choice) {
         "1" { TimeChange }
         "2" { ConfirmFileReplace }
         "3" { ConfirmTimeSync }
         "4" { ExitScript }
         default {
             Write-Host "无效的选项,请重新选择。`n"
             MainMenu
         }
     }
 }
 function TimeChange {
     $newTime = (Get-Date).AddHours(3)
     try {
         Set-Date -Date $newTime -ErrorAction Stop
         $formattedTime = Get-Date -Format "yyyy年M月d日 HH:mm:ss"
         Write-Host "时间已调整为 $formattedTime`n"
     }
     catch {
         Write-Host "时间调整失败,请检查权限和设置。`n"
     }
     MainMenu
 }
 function ConfirmFileReplace {
     $confirm = Read-Host "您确定要将 SaveGames 文件夹中的内容复制到当前目录吗?(Y/N): "
     if ($confirm.ToUpper() -eq "Y") {
         $sourceFolder = Join-Path $PSScriptRoot "SaveGames"
         $destinationFolder = $PSScriptRoot
         Write-Host "源文件夹路径: $sourceFolder`n"
         Write-Host "目标文件夹路径: $destinationFolder`n"
         if (-not (Test-Path -Path $sourceFolder)) {
             Write-Host "SaveGames 文件夹不存在.`n"
             MainMenu
             return
         }
         Write-Host "开始复制文件...`n"
         try {
             Copy-Item -Path "$sourceFolder\*" -Destination $destinationFolder -Recurse -Force -ErrorAction Stop
             Write-Host "文件已替换.`n"
         }
         catch {
             Write-Host "文件替换失败: $_`n"
         }
     }
     MainMenu
 }
 function ConfirmTimeSync {
     $confirm = Read-Host "您确定要同步系统时间吗?(Y/N): "
     if ($confirm.ToUpper() -eq "Y") {
         w32tm /config /syncfromflags:manual /manualpeerlist:"time.windows.com"
         w32tm /config /reliable:YES
         w32tm /config /update
         w32tm /resync
 
         if ($LASTEXITCODE -eq 0) {
             Write-Host "系统时间已同步。`n"
         } else {
             Write-Host "时间同步失败,请检查权限和网络连接。`n"
         }
     }
     MainMenu
 }
 function ExitScript {
     Write-Host "脚本即将退出.`n"
     Read-Host "按任意键退出..."
     exit
 }
 MainMenu