1

Я пытаюсь создать свои собственные команды типа «Make», где я могу выполнять такие команды, как make clean , make install , make server . Я сделал файл make.bat, где я сохранил эти команды.

@echo off
 clean:
 rmdir node_modules
 install:
 npm install
 server:
 node index.js

Этот метод, конечно, не работает, и я не хочу устанавливать программу Makefile, чтобы узнать больше способов использования CMD.

Можно ли создать командный файл, чтобы сделать что-то вроде этого? Или мне нужно будет установить программу Makefile?

1 ответ1

0

Да, вы можете легко это сделать.

Пакетные файлы имеют доступ ко всем параметрам, указанным после его имени. Первые 9 доступны через% 1,% 2,% 3,% 4 ...% 9, и затем вы можете использовать команду shift чтобы сдвигать все вверх, получая доступ к параметрам 10 и более.

Теперь в вашем примере используется только первый параметр, но теперь вы знаете, что на самом деле можете использовать и другие параметры.

Следующим шагом будет переход в ваш командный файл. Вы можете использовать команды IF и GOTO вместе с :labels чтобы сделать это.

Заявление IF выглядит следующим образом:

IF "%1"=="clean" GOTO clean

Вы можете поместить все свои заявления if под друг друга.

В конце операторов if вы помещаете уведомление о том, что не был введен действительный параметр:

echo No parameter or an invalid parameter was used.
echo.
echo Please use make with any of the following parameters
echo    clean      - remove the nod_modules folder.
echo    install    - execute npm install.
... etc.

После того, как у вас есть справочная страница, вам нужно перейти к концу. Логика бизнеса предлагает использовать метку END и переходить туда, чтобы вы могли поставить команду в конце, если вам нужно, которая будет работать везде, например, пауза.

Так что вы бы тогда вставили:

goto end

Теперь нам нужно добавить все функции.

Вы начинаете с метки.

:clean

И тогда вы добавляете свою команду

rmdir node_modules

с последующим переходом к концу скрипта, потому что мы не хотим, чтобы выполнялись и другие команды.

Вы можете даже пойти дальше и использовать второй параметр, чтобы указать, какую папку следует удалить. Например:

rmdir %2

Теперь вы должны запустить make clean node_modules чтобы удалить эту папку.

goto end

Итак, ваша маленькая функция выглядит так:

:clean
rmdir node_modules
goto end

После того, как вы перечислите все функции, вам, очевидно, тоже нужно поставить конец:

:end

Любая необязательная команда в конце может быть помещена позже.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .