Специальные символы, такие как звездочки argv

Запуск моего сценария следующим образом:

Node index.js POST *

В моем скрипте я делаю так:

process.argv.forEach((val, index) => {
  console.info(`${index}: ${val}`);
});

Вывод будет следующим, где * вызывает дамп всех имен моих файлов в моем проекте:

$ node index.js POST *
0: C:\Program Files\nodejs\node.exe
1: C:\Users\myComputer\myScript\index.js
2: POST
3: commands
4: data.json
5: index.js
6: node_modules
7: package-lock.json
8: package.json

Как я могу узнать, является ли переданный аргумент astricts?

Он отлично работает для других аргументов, таких как другие строки (в моем примере «POST»).

Я также использовал https://github.com/tj/commander.js и ту же проблему.

Использование Node версии 15

Он работает, как и ожидалось, на узле 14 при запуске из powershell. Я получаю только 0: 1: 2:, где 2 2: *

CertainPerformance 11.05.2022 05:06

Если вы запускаете это в bash или какой-либо подобной оболочке, то подстановка происходит на уровне оболочки, прежде чем она попадет в вашу программу. Вы не можете увидеть, была ли набрана звездочка внутри программы, потому что оболочка переключает ее на список всех файлов в каталоге.

Esther 11.05.2022 05:08
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
18
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы запускаете это в bash или какой-то похожей оболочке, то округление происходит на уровне оболочки, прежде чем он попадет в вашу программу. Вы не можете увидеть, была ли набрана звездочка внутри программы, потому что оболочка переключает ее на список всех файлов в каталоге.

Если вы хотите передать реальную звездочку, вы можете поместить ее в кавычки, и тогда оболочка не расширит ее на все файлы, а передаст ее программе как есть.

Другие вопросы по теме