使用命令提示符修改cmd.exe属性

Cod*_*num 23 command-line cmd command-prompt

这不是很好的递归吗?

我的外部驱动器上有一个可移植的命令提示符,它有一个很好的.bat文件来配置一些初始设置,但我还想要更多!

这是我知道如何从.bat设置的内容:

  • 颜色=(颜色XY)其中x和y是预定义颜色的十六进制数字
  • Prompt =(提示符$ p $ g)将提示符设置为"C:\ etc\etc>"默认提示符
  • Title =(title"text")将窗口标题设置为"text"
  • Screen Size =(mode con:cols = XX lines = YY)设置窗口的列和行大小
  • Path =(SET PATH =%~d0\bin;%PATH%)设置我的工具的本地路径并附加计算机的路径

所以这一切都很棒.但是有一些设置我似乎无法从蝙蝠设置.比如,如何使用"属性"对话框设置它们:

  • 缓冲区=不是屏幕大小,而是缓冲区
  • 快速编辑模式和自动完成等选项
  • 弹出的颜色
  • 字体.您可以在便携式驱动器上使用字体,还是必须安装它才能工作?
  • 命令历史选项

小智 30

关于设置缓冲区大小:

使用mode con: cols=XX lines=YY不仅设置窗口(屏幕)大小,还设置缓冲区大小.

如果指定系统允许的大小,则根据可用的屏幕大小,您将看到窗口和缓冲区维度都设置为相同的值; .例如:

mode con: cols=100 lines=30
Run Code Online (Sandbox Code Playgroud)

结果如下(值相同):

  • 窗口大小:宽度= 160,高度= 78
  • 缓冲区大小:宽度= 160,高度= 78

相反,如果根据可用的屏幕大小指定过大的值,您将看到窗口大小更改为其最大值,但缓冲区大小更改为指定的值.

mode con: cols=1600 lines=900
Run Code Online (Sandbox Code Playgroud)

屏幕分辨率为1280x1024,您将获得:

  • 窗口大小:宽度= 160,高度= 78
  • 缓冲区大小:宽度= 1600,高度= 900

  • 不幸的是,结论是:除非你愿意最大化你的控制台窗口(在宽度和/或高度方面),否则你不能用`mode`修改缓冲区设置. (2认同)

Han*_*nto 6

关于自动完成:

默认情况下不启用文件和目录名称完成.您可以使用/ F:ON或/ F:OFF开关为CMD.EXE的特定调用启用或禁用文件名完成.您可以通过使用REGEDT32.EXE在注册表中设置以下REG_DWORD值中的一个或两个来启用或禁用计算机和/或用户登录会话上的所有CMD.EXE调用的完成:

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\CompletionChar
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\PathCompletionChar

    and/or

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\PathCompletionChar
Run Code Online (Sandbox Code Playgroud)

用于特定函数的控制字符的十六进制值(例如,0x4是Ctrl-D,0x6是Ctrl-F).用户特定设置优先于机器设置.命令行开关优先于注册表设置.

如果使用/ F:ON开关启用完成,则使用的两个控制字符为Ctrl-D表示目录名称完成,Ctrl-F表示文件名称完成.要禁用注册表中的特定完成字符,请使用空格值(0x20),因为它不是有效的控制字符.

在那里找不到任何命令历史记录选项(cmd /?),看起来您询问的其他选项是通过注册表设置专门设置的.


小智 5

您可以通过快捷方式(.LNK文件)设置这些值。

我在桌面上有一个快捷方式,它以此为“目标:”

%windir%\ system32 \ cmd.exe /KC:\MIKE\STARTUP.CMD

/ K开关告诉CMD运行批处理文件(它会设置一些变量,提示等),然后保持打开状态。

如果右键单击快捷方式并查看其属性,则可以设置窗口和缓冲区大小,弹出颜色,起始位置(x,y轴)等。这些设置将保存在快捷方式本身中,并且每次都会应用您可以使用该快捷方式打开CMD。