
javascript(nodejs)でコマンドラインなどから実行したときに、引数を渡す方法をサンプルコード付きで備忘として記録しています。
例えば npm run などで javascript をバッチ的に実行するときなどに有用です。 なお、外部のライブラリは使用していませんので、そのままコピペで実行できます。
ソフトウェア | バージョン |
---|---|
node.js | v16.13.0 |
こんな感じで引数を渡すことができます。
普通に shell へ引数を渡す方法( Windows のコマンドラインからのバッチへの渡し方 )と一緒です。
> node sample1.js arg1test arg2test samplearg3
これで "arg1test"、"arg2test"、"samplearg3" の3つの引数を 「sample1.js」 の javascript に渡すことができます。
スペースを含む文字列を一つの引数として渡すには以下のようにダブルクオーテーションで囲みます。
> node sample1.js "arg1-1 arg1-2" "arg2-1 arg2-2"
これで「arg1-1 arg1-2」と「arg2-1 arg2-2」の2つの文字列をそれぞれ引数として sample1.js の実行時に渡すことができます。
以下の sample.js を用意してみます。
console.log(process.argv);
以上を nodejs から呼び出します。3つ引数を渡してみます。
> node sample.js "arg1-1 arg1-2" arg2 arg3
[
'C:\\Program Files\\nodejs\\node.exe',
'C:\\02_data\\01_dev\\03_nodachisoftweb\\nodachisoft_www\\batch\\sample.js',
'arg1-1 arg1-2',
'arg2',
'arg3'
]
process.argv でコマンドラインから渡された引数を参照できます。
process.argv の内容は以下の通りです。
添え字(番号) | 内容 |
---|---|
[0] | nodejs のフルパス |
[1] | 実行した javascript のフルパス |
[2] 以降 | コマンドの引数で渡した文字列 |
具体的に、sample.js に渡した引数の配列は以下で取得できます。
var argsStr = process.argv.slice(2);
var count = 0;
argsStr.forEach(arg=>{console.log(`arg[${count++}]=${arg}`)});
引数を渡して実行してみます。
>node sample.js "arg1-1 arg1-2" arg2 "arg3-1 arg3-2"
arg[0]=arg1-1 arg1-2
arg[1]=arg2
arg[2]=arg3-1 arg3-2
純粋に渡した引数の中身をそれぞれ確認できました。
日付 | 変更概要 |
---|---|
なし |
コメント、ありがとうございます。
ごめんなさい。エラーでうまく送信できませんでした。ご迷惑をおかけします。しばらくおいてから再度送信を試していただくか、以下から DM などでご連絡頂ければと思います。
Twitter:@NodachiSoft_jpお名前:以下の内容でコメントを送信します。よろしければ、「送信」を押してください。修正する場合は「戻る」を押してください
お名前: