JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

【Node.js入門】process.argvでコマンドライン引数を取得する方法

process.argv は、Node.js プロセスの起動時にコマンドラインから渡されたすべての引数を配列として返すプロパティです。配列の最初の要素には必ず process.execPath と同じ値(Node.js 実行バイナリへの絶対パス)が含まれ、2番目の要素には実行中のJavaScriptファイルのパスが格納されます。それ以降の要素には、ユーザーが指定した追加の引数が順番に並びます。

構文

process.argv

パラメータ

process.argv は、Node.js プロセス起動時に渡されたコマンドライン引数をすべて取得するためのものであり、ユーザーが何かを入力する必要はありません。参照するだけで、引数が格納された配列を受け取ることができます。

使用例1:process.argv の内容を表示する

まず「argv.js」という名前のファイルを作成し、以下のコードをコピー&ペーストしてください。ファイル作成後、次のコマンドでコードを実行します。

node argv.js

argv.js

// process.argv の使い方を示す Node.js プログラム

// process モジュールを読み込む
const process = require('process');

// process.argv の値を出力する
console.log(process.argv);

出力結果

C:\home\node>> node argv.js
[ '/usr/bin/node',
'/home/node/test/process.js' ]

この例では、配列の0番目にNode.js本体のパス(/usr/bin/node)、1番目に実行したスクリプトのパスが出力されていることがわかります。

使用例2:引数の総数と各要素を確認する

続いて、もう少し実践的な例を見てみましょう。length プロパティで引数の総数を取得し、forEach を使って各要素をインデックス付きで出力します。

// process.argv の使い方を示す Node.js プログラム

// process モジュールを読み込む
const process = require('process');

// process.argv の値を取得する
var args = process.argv;

console.log("Total number of arguments are: "+args.length);
args.forEach((val, index) => {
    console.log(`${index}: ${val}`);
});

出力結果

C:\home\node>> node argv.js
Total number of arguments are: 2
0: /usr/bin/node
1: /home/node/test/process.js

このように process.argv を使えば、Node.js スクリプトに渡されたコマンドライン引数を簡単に取得・処理できます。なお、node argv.js apple banana のように引数を渡して実行した場合は、3番目以降の要素に「apple」「banana」などの値が順に格納される点も覚えておくと便利です。

  1. Node.jsのprocess.argv0プロパティとは?使い方とprocess.argv[0]との違いを解説

    Node.jsでは、アプリケーション起動時に渡された元のargv[0]の値を、読み取り専用のコピーとして保持するための仕組みとしてprocess.argv0が用意されています。このプロパティを参照することで、Node.jsプロセスが起動された際の実行ファイル名を簡単に取得できます。 構文 process.argv0 パラメータ process.argv0は、保存されているargv[0]の読み取り専用コピーを返すだけのため、ユーザーからの入力(引数)は一切不要です。なお、これは関数ではなくプロパティである点に注意してください。括弧を付けて呼び出すのではなく、単純に参照するだけで値が取得できます。

  2. Node.jsのprocess.archでCPUアーキテクチャを取得する方法

    Node.jsのprocess.archは、現在のNode.jsプロセスがコンパイルされたCPUアーキテクチャを取得するためのプロパティです。なお、process.archは関数ではなく文字列型のプロパティであるため、呼び出し時に括弧()は不要です。返される主な値には、arm、arm64、ia32、mips、mipsel、ppc、ppc64、x32、x64などがあります。構文process.archパラメータと戻り値process.archは引数を受け取りません。実行中のコードがコンパイルされた環境のアーキテクチャ名を、文字列としてそのまま返します。主な戻り値の一覧x64: 64ビットx86互