よく分からんコマンドプロンプトからのbatファイルをなんとか便利に書きたいと言う思い。
WoTのmodパック 「Aslain's WoT Modpack」をクリーンインストールしたあとで、別途modファイルをコピーとかインストーラー実行とかしたいのです。
やりたいのは、後半部分の自動化!
コマンドプロンプトのコピーコマンドがめちゃくちゃ貧弱なので、PowerSellでなんとかならんかと思ったのだけど、こっちは経験がないので遙かに難しい。
で、多少なりとも経験のあるLinuxなら何とかなるのでは?と思ったところから始まる。
【WSL入門】第1回 Windows 10標準Linux環境WSLを始めよう:ITの教室 - @IT
>Linuxは、ほぼ通常のディストリビューションが利用でき、各ディストリビューション用のパッケージシステムがそのまま利用できる。
>このWSLを使うことで、Windows 10のコマンドライン環境が「劇的」に強化される。
これ、batコマンドとLinuxコマンドの両方良いところが使えるかも?
あと、最新フォルダ名の取得方法。こちらはコマンドプロンプト用。
最新更新日付のファイルを検出する方法 (DOSプロンプト活用相談室LOG)
で、できたのがこれ。
set gamepath1=C:\Games\World_of_Tanks\mods\ set gamepath2=C:\Games\World_of_Tanks\res_mods\ rem ## mod ## cd "%gamepath1%" for /F "tokens=1* delims=" %%a in ('dir /b /O:D %gamepath1%') do set fname=%%a cd "%fname%" bash -c "cp /mnt/c/Users/(UID)/Desktop/(対象ファイル)* ." bash -c "cp -R /mnt/c/Users/(UID)/Desktop/(対象フォルダ) ." rem ## res_mod ## cd "%gamepath2%" for /F "tokens=1* delims=" %%a in ('dir /b /O:D %gamepath2%') do set f2name=%%a cd "%f2name%" bash -c "cp -R /mnt/c/Users/(UID)/Desktop/VMC-GuP/(対象フォルダ)* ."
for文のところで、最新のmodのディレクトリを取得して、そこに移動した後、コピーしたいファイルやフォルダをコピーする。
これを(必要ならres_modにも)実行してやれば、手でやってた処理がフォルダ名とか気にせず一括で! (^o^