因為微軟模擬飛行的遊戲需要中文化,網路上的說法是官方中文包放在遊戲目錄內,要自己更名,也就是將中文包的檔名改成英文檔名,但是遊戲的目錄下有一百多個中文包,所以用powershell來批次處理,希望改完後可以成功中文化
這支程式會先將英文檔名更名備份,再將中文檔名改為英文檔名,因為有設定參數,所以其實也可以用來批次處理其他的檔案
# -----程式使用方式-----
# 語法: test001.ps1 -en [英文語系檔名] -tw [中文語系檔名]
# 例如: test001.ps1 -en us_en.lang -tw tw_cn.lang
# -------------------
#param是設定參數,如下設定了兩個參數:en、tw
param($en,$tw)
$US_filename = $en #英文語系檔
$TW_filename = $tw #中文語系檔
$US_filename_bk = $US_filename + ".bk" #英文原始檔備份的檔名
if ( $US_filename -and $TW_filename) {
get-childitem -Path "E:\images\test001" -Filter $US_filename -Recurse | foreach {
write-host "----------------------------------------------------------------"
write-host "原始檔名:" $_.FullName
#更名
Rename-Item -Path $_.FullName -NewName $US_filename_bk
$US_Fullname_bk = -join($_.DirectoryName,"\$US_filename_bk")
#檢查更名是否成功
if ((Test-Path -Path $US_Fullname_bk )) {
write-host "更名:" $_.Name "-->" $US_filename_bk
#複製中文語系並更名
$TW_Fullname = -join($_.DirectoryName,"\$TW_filename") #完整的中文語系路徑
$US_Fullname = -join($_.DirectoryName,"\$US_filename") #完整的英文語系路徑(Copy用)
Copy-Item -Path $TW_Fullname -Destination $US_Fullname -Force
write-host "複製並更名:" $TW_Fullname "-->" $US_filename_bk
} else {
write-host "更名失敗"
}
}
} else {
write-host "參數en或tw的值為空白,語法:test001.ps1 -en [英文語系檔名] -tw [中文語系檔名]"
}