Я хочу настроить cmd.exe для отображения длинных имен в короткое, как говорит пример C:\Documents and Settings\
в C:\DOCUM~1
Я знаю, что это может покончить command.exe
, Но это не имеет автоматической полной функции.
Есть ли какие-либо тонкие настройки или инструменты для отображения пути как это использование cmd.exe?
Я предполагаю, что Вы имеете в виду command.com, не command.exe.
Нет никакого способа получить короткие имена файлов в cmd.exe, по-моему.
Вы могли использовать Консоль TakeCommand LE. Это свободно и замена для cmd.exe с большим количеством дополнительных функций. Это поддерживает автозавершение (с клавишей TAB) и короткие имена файлов.
Они объясняют об этом в helpfile:
На дисках LFN TCC будет искать и отображать длинные имена файлов во время завершения имени файла. Если Вы хотите искать 8,3 коротких имен файлов (SFNs), нажмите Ctrl-A, прежде чем Вы начнете использовать завершение имени файла. Это позволяет Вам использовать завершение имени файла на дисках LFN с приложениями, которые не поддерживают длинные имена файлов. Директива LFNToggle может использоваться для изменения нажатия клавиши, присвоенного этой функции.
Можно нажать Ctrl-A в любое время до начала завершения имени файла. Переключатель к формату SFN остается, в действительности для остатка от текущей командной строки. Когда TCC начинает новую командную строку, он возвращается к формату длинного имени файла, пока Вы не нажимаете Ctrl-A снова.
Можно также нажать Ctrl-A сразу после того, как имя файла будет отображено, и имя будет преобразовано в формат короткого имени файла. Однако эта функция только влияет на последний раз введенное имя файла или каталога (часть между курсором и последней обратной косой чертой [] на командной строке), и любые последующие записи. Это автоматически не преобразует все части ранее вводимого пути.
Ctrl-A переключает режим завершения имени файла, таким образом, можно переключиться назад и вперед между дисплеями длинного имени файла и короткого имени файла путем нажатия Ctrl-A каждый раз, когда Вы хотите изменить режимы.
Это не может быть сделано. Вывод 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