もくじ
https://tera1707.com/entry/2022/02/06/144447
やったこと
powershellのInstall-Language
を使う。
また、バッチファイルをダブルクリックするだけで実行したいので、下記の過去記事を使う。
管理者権限がなかったらUAC昇格してから実行するバッチファイル(引数指定可能) #Windows - Qiita
バッチファイルの中でPowerShellのコマンドを実行する - tera1707’s blog
サンプルスクリプト
今回は、下記のようにしてみた。
- バッチファイルをダブルクリックしたら、
- 管理者で起動するか聞かれるので、OKを押したら、
- Install-Languageが走って、複数言語がinstallされる
下記のスクリプトのうち、要点は真ん中あたりにある
PowerShell -Command "Install-Language ja-JP"
が数言語分ある部分。
それ以外は、管理者として実行してくれるようにするためのおまじない。
@set @dummy=0/* @echo off NET FILE 1>NUL 2>NUL if "%ERRORLEVEL%" neq "0" ( cscript //nologo //E:JScript "%~f0" %* exit /b %ERRORLEVEL% ) REM 管理者権限で実行したい処理 ここから PowerShell -Command "Install-Language ja-JP" PowerShell -Command "Install-Language de-DE" PowerShell -Command "Install-Language en-US" PowerShell -Command "Install-Language fr-FR" pause REM 管理者権限で実行したい処理 ここまで goto :EOF */ var cmd = '"/c ""' + WScript.ScriptFullName + '" '; for (var i = 0; i < WScript.Arguments.Length; i++) cmd += '"' + WScript.Arguments(i) + '" '; (new ActiveXObject('Shell.Application')).ShellExecute('cmd.exe', cmd + ' "', '', 'runas', 1);
実行中の画面
★注意★
この「言語 ※※-※※ をインストールしています」が、かなり長い時間出たままになる。
フリーズしているのではないか?と心配になるくらい長いこと出続けたあと、完了すると、結果表示代わりにその言語のインストール状況が表示される。それが下記の部分(下図は、ドイツ語のインストールのためのInstall-Language de-DEが終わった後の表示)。
今日試した限り、15分以上は「進行中」のままだった。
(windowsの設定画面から言語をinstallするときも、結構時間かかるので、なんとなく納得)
また、一度インストールしたことのある言語を再度Install-Language
すると、その言語に関してはすぐInstall-Language
の実行が終わる。
参考
Install-Language
問題があったときは、下記を見ながら削除を行えばよいかもしれない。。。(未確認)