4

У меня есть простой простой макрос Doskey

DOSKEY s="C:\Program Files (x86)\Git\bin\sh.exe" --login

Таким образом, я мог переключиться с командной строки на git shell с помощью s

Но иногда я хочу выполнить только одну команду в оболочке и вернуться в командную строку. Для этого мне нужно либо войти в оболочку, сделать что-то, выйти. Или я мог бы изменить макрос Doskey

DOSKEY s="C:\Program Files (x86)\Git\bin\sh.exe" --login -c "$*"

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

Мне было интересно, смогу ли я сделать это условно, выбирая между двумя, основываясь на том, передал ли я другой аргумент или нет. Так что s сделает первое, а s echo hello - второе.

Есть ли способ сделать это?

1 ответ1

7

Вы можете использовать любые стандартные команды CMD.EXE в пределах вашего определения макроса. Команда IF может проверить, если у вас есть хотя бы один переданный параметр и ветвление соответственно.

doskey s=if $1. equ . ("C:\Program Files (x86)\Git\bin\sh.exe" --login) else "C:\Program Files (x86)\Git\bin\sh.exe" --login -c "$*"

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