Я хочу изменить строку командной строки в командной строке Windows?
Например.
C:\current\path → $ CustomPrompt>
Если возможно, я бы предпочел, чтобы решение использовало winapi. Я уже посмотрел на некоторые из функций консоли, но я не могу найти, что я бы предположил, что wold манипулирует строкой подсказки? Кто-нибудь знает как это сделать?
Строка командной строки определяется как переменная среды PROMPT. Вы можете изменить эту переменную с помощью функции setenv()
из cstdlib
:
#include <stdlib.h>
//...
setenv("PROMPT", "$A$A", true);
Это, например, приведет к строке приглашения '&&' (двойной амперсанд). Для более интересных примеров проверьте это.
EDIT: есть способ добиться этого без необходимости перезапуска командного интерпретатора. Создайте следующий командный файл:
@echo off
break off
title custom command prompt
color 0a
cls
:cmd
set /p cmd=command:
%cmd%
echo.
goto cmd
Назовите его "change_prompt.bat". Затем в коде c++ выполните командный файл:
system("change_prompt.bat");
В результате подсказка будет выглядеть так:
Как вы можете видеть, это изменяется:
setenv
должен быть std::setenv
при использовании <cstdlib>
, текущий код не гарантируется для компиляции. однако использование <cstdlib>
не является хорошим выбором. Кроме того, как уже отмечалось ранее, этот подход работает только для экземпляров интерпретатора команд, запущенных из этого процесса (если он вообще работает, мне не совсем ясно).
PROMPT
?