因為微軟模擬飛行的遊戲需要中文化,網路上的說法是官方中文包放在遊戲目錄內,要自己更名,也就是將中文包的檔名改成英文檔名,但是遊戲的目錄下有一百多個中文包,所以用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 [中文語系檔名]" }