24

这不是很好的递归吗?

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

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

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

所以这一切都很好。但是有一些设置我似乎无法从蝙蝠中设置。就像,我将如何使用“属性”对话框设置这些:

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

4 回答 4

39

关于设置缓冲区大小:

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

如果您根据可用的屏幕尺寸指定系统允许的尺寸,您会看到窗口和缓冲区尺寸都设置为相同的值;。例如:

mode con: cols=100 lines=30

结果如下(值相同):

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

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

mode con: cols=1600 lines=900

使用 1280x1024 的屏幕分辨率,您将获得:

  • 窗口大小:宽度= 160,高度= 78
  • 缓冲区大小:宽度= 1600,高度= 900
于 2009-08-13T12:13:58.080 回答
7

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

我的桌面上有一个快捷方式,以此为目标:

%windir%\system32\cmd.exe /K %userprofile%\STARTUP.CMD

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

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

于 2015-11-05T15:36:49.283 回答
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

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

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

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

于 2009-06-03T15:57:33.507 回答
4

对于真正的缓冲区大小调整,使用 DOSKEY /LISTSIZE=size

由于 Microsoft 将 ANSI ESC 控制从命令/cmd 提示中取出,因此您无法再更改 shell 中的颜色。

于 2010-06-13T01:44:15.817 回答