Windowsバッチ(.bat)とJScriptでリスト内からランダム表示

概要

素のWindowsでサイコロ作ったりくじ引きしたい瞬間があったので書きました。

コード

いつもどおり実際の処理はJScriptに投げます。
文字コードはSHIFT-JISにしましょう。

start_rand.batファイルを作成

JScript内でマルチバイト文字を使用するならSHIFT-JISにした方が文字化けしないのでおすすめです。


@echo off
REM 文字コード設定、batファイルと同じ、文字コードを設定する。
REM 文字コード設定 sjis
CHCP 932

cscript /nologo rand.js
PAUSE

rand.jsファイルを作成

基本的に文字コードはSHIFT-JISでの保存がおすすめです。
それ以外だと解釈できないマルチバイト文字があるらしく「Microsoft JScript コンパイル エラー: 終了していない文字列型の定数です。」などと表示されます。
※下記のコードをUTF8で保存すると同じエラーと出会えます。

// リスト作成
var nameList = [
  '淺野',
  '渕池',
  '村木',
];

// リストからランダムな1つを取得
function pick(target) {
  var index = Math.floor(Math.random() * (target.length));
  return target[index];
}
var res = pick(nameList);

// コンソールに表示させる
WScript.echo(res);

実行方法

使うときはstart_rand.batかrand.jsをクリックしてください。
どちらでも実行できますが表示が少し違います。

rand.js

rand.jsをクリックするとこんな感じで表示されます。

コピーしたい場合は、アラートをクリックしてctrl+Cを押下すると下記のようなものがコピーされます。

---------------------------
Windows Script Host
---------------------------
村木
---------------------------
OK   
---------------------------

start_rand.bat

strat_rand.batの場合はこんな感じ。
選択して右クリックでコピーできるので、名前だけ使いたいならcmd経由がいいかも?

おわり。