Created
August 22, 2019 20:17
-
-
Save nyanshiba/cc389af19f9fa629561feb42c41f7ebc to your computer and use it in GitHub Desktop.
Minecraftのjarファイルでは手に入らない音声ファイル等を抽出するPowerShellスクリプト
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#190823 | |
#設定 | |
$Settings = | |
@{ | |
#インデックスファイルの場所 | |
JsonPath = "$env:AppData\.minecraft\assets\indexes\1.14.json" | |
#オブジェクトファイルのルートディレクトリ | |
ObjectsPath = "$env:AppData\.minecraft\assets\objects" | |
#出力先ディレクトリ | |
ExtractPath = "$env:USERPROFILE\Desktop\MCAssetsExtr" | |
#抽出するファイルの条件 | |
Sort = "*.*" #すべてのファイル | |
#Sort = "*.ogg" #音声ファイルのみ | |
} | |
#抽出したいOggが記述されているJsonを取得 | |
$Objects = (Get-Content $Settings.JsonPath | ConvertFrom-Json).objects | |
#Nameがソート条件に一致するオブジェクトの名前を抽出 PSCustomObjectはArrayと違い扱いが少し複雑 | |
($Objects | Get-Member -Name $Settings.Sort).Name | ForEach-Object { | |
$_ | |
#Copy-Item前にディレクトリ作成 | |
$Null = New-Item "$(Split-Path "$($Settings.ExtractPath)\$_" -Parent)" -itemType Directory -ErrorAction SilentlyContinue | |
#ファイルを取得、読める名前でコピー | |
Copy-Item -LiteralPath "$($Settings.ObjectsPath)\$(($Objects."$_".hash).Substring(0,2))\$($Objects."$_".hash)" -Destination "$($Settings.ExtractPath)\$_" -ErrorAction SilentlyContinue | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment