调整 cmd.exe 以显示文件夹路径

调整 cmd.exe 以显示文件夹路径

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

相关内容