You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在终端运行Node.js代码时指定要读取的文本文件

实现命令行指定目标文件的方案

当然可以实现!Node.js 内置了获取命令行参数的能力,完全不用额外依赖就能搞定你的需求,核心就是用 process.argv 这个全局变量。

核心原理

process.argv 是一个数组,它会包含你启动 Node.js 进程时的所有命令行参数:

  • 第一个元素是 Node.js 可执行文件的路径
  • 第二个元素是当前运行的脚本文件路径
  • 从第三个元素开始,就是你手动传入的自定义参数(比如你要的 input.txt)

改造后的代码示例

把你原来硬编码文件名的逻辑改成从命令行参数读取,同时加上参数校验避免出错:

const fs = require('fs');

// 获取命令行传入的文件名(第三个参数)
const filename = process.argv[2];

// 校验用户是否传入了文件名
if (!filename) {
  console.error('请指定要读取的文件,例如:node index.js input.txt');
  process.exit(1); // 退出进程并返回错误码
}

// 读取文件(逻辑和你原来的一致,只是文件名换成了参数值)
try {
  const data = fs.readFileSync(`${process.cwd()}/${filename}`).toString().split(/\r?\n/);
  // 这里可以添加你的业务逻辑,比如打印读取到的数据
  console.log('读取到的文件内容行:', data);
} catch (err) {
  console.error('读取文件失败:', err.message);
  process.exit(1);
}

使用方式

现在你只需要在终端里这样启动脚本就行:

node index.js input.txt

如果需要读取其他文件,直接替换 input.txt 为目标文件名即可,比如:

node index.js another-file.txt

进阶扩展(可选)

如果你的需求更复杂(比如需要支持多个文件、参数选项等),可以考虑使用专门的命令行参数解析库,比如 commander.js,不过对于你当前的简单需求,用原生的 process.argv 就足够啦。

内容的提问来源于stack exchange,提问作者Alicja Kaźmierczak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:30:22