Я хочу настроить cmd.exe для отображения длинных имен в короткие, как, например, в примере C:\Documents and Settings\ в C:\DOCUM~1

Я знаю, что это можно сделать с помощью command.exe , но у него нет функции автозаполнения.

Существуют ли какие-либо настройки или инструменты для отображения пути с помощью cmd.exe?

4 ответа4

2

Я предполагаю, что вы имеете в виду command.com, а не command.exe.

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

Вы можете использовать T akeCommand Console LE. Это бесплатно и замена cmd.exe с множеством дополнительных функций. Он поддерживает автозаполнение (с помощью клавиши TAB) и короткие имена файлов.

Они объясняют об этом в файле помощи:

На дисках LFN TCC будет искать и отображать длинные имена файлов во время завершения имени файла. Если вы хотите найти 8.3 коротких имен файлов (SFN), нажмите Ctrl-A, прежде чем начать использовать завершение имени файла. Это позволяет использовать завершение имени файла на дисках LFN с приложениями, которые не поддерживают длинные имена файлов. Директива LFNToggle может использоваться для изменения нажатия клавиши, назначенного этой функции.

Вы можете нажать Ctrl-A в любое время до начала завершения имени файла. Переключение на формат SFN остается в силе для оставшейся части текущей командной строки. Когда TCC начинает новую командную строку, он возвращается к формату длинных имен файлов, пока вы снова не нажмете Ctrl-A.

Вы также можете нажать Ctrl-A сразу после отображения имени файла, и имя будет преобразовано в формат короткого имени файла. Однако эта функция влияет только на последнее введенное имя файла или каталога (часть между курсором и последней обратной косой чертой [] в командной строке) и на все последующие записи. Он не будет автоматически преобразовывать все части ранее введенного пути.

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

2

AFAIK это невозможно, см. Эту статью, в которой обсуждаются все возможные уловки, связанные с приглашением cmd.exe:

Лучшая PROMPT для CMD.EXE или переменные среды Cool Prompt и приятная прозрачная мульти-подсказка

Как отмечалось здесь, есть много сменных оболочек cmd, которые более гибки.

1

Это не может быть сделано. Вывод help prompt дает список того, что можно сделать:

C:\>HELP PROMPT
Changes the cmd.exe command prompt.

PROMPT [text]

text Specifies a new command prompt.

Prompt can be made up of normal characters and the following special codes:

$A & (Ampersand) $B | (pipe) $C ( (Left parenthesis) $D Current date $E Escape code (ASCII code 27) $F ) (Right parenthesis) $G > (greater-than sign) $H Backspace (erases previous character) $L < (less-than sign) $N Current drive $P Current drive and path $Q = (equal sign) $S (space) $T Current time $V Windows version number $_ Carriage return and linefeed $$ $ (dollar sign)

If Command Extensions are enabled the PROMPT command supports the following additional formatting characters:

$+ zero or more plus sign (+) characters depending upon the depth of the PUSHD directory stack, one character for each level pushed.

$M Displays the remote name associated with the current drive letter or the empty string if current drive is not a network drive.

Эту информацию можно получить в других контекстах CMD, используя синтаксис %~ в call и for . Например, рассмотрим этот скрипт:

@ECHO OFF
call :X "%CD%"
goto :EOF

:X echo %1 echo %~s1

Выход:

"C:\Documents and Settings"
C:\DOCUME~1

Смотри call /? а for /? для деталей.

Неудивительно, что в PowerShell это тривиально. В PowerShell приглашение не имеет собственного специального синтаксиса; это совершенно нормальная функция. Ты можешь использовать

Get-ShortPath $PWD
0

Чтобы форсировать короткие имена файлов 8.3, используйте команду dir с опцией инвертированного /N, например:

dir /-N

Также я использую Console консольное улучшение, поддерживает автозаполнение тоже.

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