C:\Documents and Settings\
我想调整 cmd.exe 以将长名称显示为短名称,例如
C:\DOCUM~1
我知道它可以用来完成command.exe
,但它没有自动完成功能。
是否有任何调整或工具可以使用 cmd.exe 显示这样的路径?
答案1
据我所知这是不可能的,请参阅本文,其中讨论了与 cmd.exe 提示有关的所有可能的技巧:
为 CMD.EXE 提供更好的 PROMPT 或 Cool Prompt 环境变量以及漂亮的透明多提示符
正如这里所述,有许多更灵活的 cmd 替代 shell。
答案2
我猜你的意思是 command.com,而不是 command.exe。
在我看来,没有办法在 cmd.exe 中获取短文件名。
你可以使用TakeCommand 控制台 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 在长文件名显示和短文件名显示之间来回切换。
答案3
这不可能。输出help prompt
给出了可以执行的操作列表:
C:\>帮助提示 更改 cmd.exe 命令提示符。提示 [文本]
text 指定新的命令提示符。
提示可以由普通字符和以下特殊代码组成:
$A &(& 符号) $B | (管道) $C ( (左括号) $D 当前日期 $E 转义码(ASCII 代码 27) $F ) (右括号) $G >(大于号) $H 退格键(删除前一个字符) $L <(小于符号) $N 当前驱动器 $P 当前驱动器和路径 $Q =(等号) $S(空格) $T当前时间 $V Windows 版本号 $_ 回车和换行 $$ $(美元符号)
如果启用了命令扩展,则 PROMPT 命令支持 以下附加格式字符:
$+ 零个或多个加号 (+) 字符,具体取决于 PUSHD 目录堆栈的深度,每个字符一个 水平被推高。
$M 显示与当前驱动器关联的远程名称 如果当前驱动器不是网络,则为字母或空字符串 驾驶。
可以使用%~
incall
和语法在其他 CMD 上下文中获取此信息for
。例如,考虑以下脚本:
@ECHO 关闭 调用 :X "%CD%" 转到:EOF:X 回显 %1 回显 %~s1
输出为:
“C:\Documents and Settings” 目录:\DOCUME~1
请参阅call /?
和for /?
了解详情。
在 PowerShell 中,这很简单,这并不奇怪。在 PowerShell 中,提示符没有自己的特殊语法;这是一个非常正常的功能。您可以使用
获取短路径 $PWD
答案4
我找到了一种方法来做到这一点:
首次运行(批处理文件中的双倍百分比):
@for /f "delims=" %a in ('cd') do @set "short=%~sa"
然后使用:
prompt %short%$G