Как динамически установить заголовок командной строки (CMD) в Windows XP на текущий рабочий каталог? я могу использовать
title %CD%
однако это временное исправление, и заголовок остается неизменным, когда я меняю каталог с помощью команды CD.
Как динамически установить заголовок командной строки (CMD) в Windows XP на текущий рабочий каталог? я могу использовать
title %CD%
однако это временное исправление, и заголовок остается неизменным, когда я меняю каталог с помощью команды CD.
Ответы:
Получил это работать благодаря макросу Doskey гравитации. Он использовал && для объединения команд cd и title, что прекрасно работает. Я даже заставлял этот макрос загружаться каждый раз, когда использую cmd, настраивая реестр.
1) Я создал bat-файл с именем cmd_title.bat и его содержимое
@echo off
title %cd%
2) Я поместил этот файл на диск C: (C: \ cmd_title.bat).
3) Создайте еще один командный файл с именем cmd.bat на диске C: со следующим содержимым
doskey cd = cd /d $* ^&^& "C:\cmd_title.bat"
title %cd%
(флаг / d предназначен для использования cd для переключения на другой диск).
4) Затем мы открываем regedit и переходим в HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Command Processor . Здесь есть ключ под названием AutoRun . Мы изменяем значение этого ключа и устанавливаем его в местоположение файла cmd.bat в кавычках (например: «C: \ cmd.bat»).
Теперь CD работает так, как мы хотим каждый раз, когда мы открываем CMD.
В основном && используется для объединения команд в Windows
doskey cd=@echo off$Tcd /d $*$T@title ^%cd^%$Techo on
@echo off
что нет необходимости, если вы просто добавляете @
перед командами, которые вы не хотите отражать. Я также нашел эту команду более полезной, чтобы установить в качестве заголовка только текущее имя каталога, а не полный путь@for %%* in (.) do @title %%~nx*
Я думаю, что pushd и popd гораздо более полезны, чем cd, и увидели бы гораздо больше пользы, если бы они быстрее печатали. Я решил проблемы cd и pushd / popd и заголовка каталога консоли с помощью следующего скрипта, который я называю d.bat, который находится в моем пути.
@ echo off
rem d.bat replaces CD, PUSHD, and POPD with one command that also changes the title
rem of the console window to tell the current directory. Invoked with no arg, the
rem title is updated. Use this after changing the directory by some other means.
rem The argument / invokes popd. Any other argument invokes pushd with that arg.
if not _%1 == _ (
if _%1 == _/ (
popd
) else (
pushd %*
)
)
title %CD%
Вы можете изменить заголовок командной строки с помощью title
команды.
Вы можете создать пакетный файл (скажем, mycd.bat), содержащий:
title "%1"
cd "%1"
и используйте его вместо "cd":
mycd "newdir"
Вы также можете поместить файл .bat в system32, если хотите, чтобы он всегда был доступен.
doskey cd=cd $* ^&^& title $*
Вы не можете, по крайней мере, не с оболочкой Windows.
Это может быть возможным , чтобы добавить «набор заголовков Xterm» управляющие последовательности для %PROMPT%
, но вам потребуется другой эмулятор терминала (возможно PuTTYcyg или что - то из СФУ), а консоль для Windows не поддерживает управляющие последовательности.
Кроме того, найдите другую оболочку, которая может использовать функции консоли Windows для установки заголовков.
Они часто путаются в контексте Windows, так что ...
оболочка читает и интерпретирует ввод; cmd.exe
, command.com
,/bin/sh
терминал , эмулятор терминала , консоль выводит на экран текстовые программы (включая оболочку); Windows Console
, xterm
,PuTTYcyg
explorer
оболочка с графическим интерфейсом, cmd.exe
текстовая. (Подумайте об этом: cmd.exe
это точный эквивалент /bin/sh
в Unix и /bin/sh
всегда называется «оболочкой». Аналогично, консоль Windows эквивалентна «эмулятору терминала» в X11.)
Предполагая, что \ tools находится в пути, и именно там вы храните свои командные файлы:
copy con: \tools\titlecmd.txt
title ^Z
copy con: \tools\cdtitle.bat
cd>\tools\cd.txt
copy \tools\titlecmd.txt+\tools\cd.txt cdtitletmp.bat
call cdtitletmp
^Z
Теперь у вас есть сообщение, cdtitle.bat
которое вы можете вызвать из другого командного файла.
Создайте файл: cd.bat и поместите туда следующее:
cd %*
title %CD%
Затем выполните эту команду:
doskey cd=...\cd.bat $*
Замените "..." на путь к cd.bat. Попробуйте и убедитесь, что это работает.
Чтобы создать этот перманентный ish, создайте dosrc.cmd, поместите туда команду doskey, а затем создайте ярлык cmd, щелкните его правой кнопкой мыши и выберите свойства.
Изменить цель, чтобы быть:
%windir%\system32\cmd.exe /K ...\dosrc.cmd
Снова замените "..." на путь к dosrc.cmd
Затем дважды щелкните по ярлыку, у вас должна быть функциональность CD.
pushd
один из макросов?