殭毀地圖備份腳本

学习笔记 liuruoyu 89℃ 0评论

僵毀地圖備份腳本
把要備份的地圖區域,寫到“backmap.txt”中。每行一個位置,以開始位置和結束位置的X.Y爲內容,逗號分隔,#寫註釋。
腳本放到僵毀存檔目錄中,執行的時候,會先讀取當前目錄的“backmap.txt”,再建立一個以執行時間命名的下級目錄作爲備份目錄,把讀取到需要備份的目錄範圍內的bin文件,都拷貝到備份目錄中。

1、backupmap.txt樣本:

1537,124,1552,140 # 軍事要塞
578,538,586,544 # 河畔廢車廠
625,517,641,528 # 河畔酒館和旅館
803,1169,819,1177 # 羅斯伍德警局和消防局
1187,677,1192,683 # 西點修車廠
1199,254,1206,264 # 河畔有車庫豪宅及其週邊2間

2、backmap.ps1程式腳本:

# 備份backmap.txt中指定的位置的地圖到以備份時間命名的目錄
# 設置存檔目錄和當前目錄
$SaveDir = Get-Location # 默認為腳本所在目錄
$CurrentDir = Get-Location

# 創建備份目錄
$Timestamp = Get-Date -Format "yyyyMMddHHmm"
$BackupDir = Join-Path $CurrentDir "Backup_$Timestamp"
New-Item -ItemType Directory -Path $BackupDir | Out-Null

# 拷貝 backmap.txt 文件到備份目錄
$MapBackFile = Join-Path $CurrentDir "backmap.txt"
If (Test-Path $MapBackFile) {
Copy-Item -Path $MapBackFile -Destination $BackupDir
} Else {
Write-Host "backmap.txt 文件未找到,請確保文件位於當前目錄。" -ForegroundColor Red
Exit 1
}

# 讀取 backmap.txt 並解析範圍
$MapRanges = Get-Content $MapBackFile

# 遍歷範圍並拷貝對應的地圖文件
Foreach ($Range in $MapRanges) {
# 去除註釋部分
$Range = \(Range -replace "#.*\)", "".Trim()

# 解析每行的起點和終點 (X1, Y1, X2, Y2)
$Coords = $Range -split ","
If ($Coords.Count -ne 4) {
If ($Range -ne "") {
Write-Host "無效的範圍格式:$Range" -ForegroundColor Yellow
}
Continue
}

$X1, $Y1, $X2, $Y2 = \(Coords | ForEach-Object { [int]\)_ }

# 計算需要備份的區域範圍
For ($X = [Math]::Min($X1, $X2); $X -le [Math]::Max($X1, $X2); $X++) {
For ($Y = [Math]::Min($Y1, $Y2); $Y -le [Math]::Max($Y1, $Y2); $Y++) {
# 備份 map_X_Y.bin 文件
\(MapFileName = "map_\)_$.bin"
$SourceMapFile = Join-Path $SaveDir $MapFileName

If (Test-Path $SourceMapFile) {
Copy-Item -Path $SourceMapFile -Destination $BackupDir
Write-Host "已備份地圖文件:$MapFileName" -ForegroundColor Green
} Else {
Write-Host "找不到地圖文件:$MapFileName (跳過)" -ForegroundColor Yellow
}
}
}
}

Write-Host "備份完成,所有文件存儲於:$BackupDir" -ForegroundColor Cyan

转载请注明:刘太监的私藏 » 殭毀地圖備份腳本

喜欢 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址