Windows 不同方式打开的cmd/dos窗口属性配置不同

文章目录

    • 1. 默认值(控制台窗口)属性
    • 2. "C:\Windows\System32\cmd.exe" 属性
    • 3. "命令提示符"属性
    • 4. 自定义某标题cmd窗口属性
    • 5. cmd快捷方式的属性
    • 总结

最近在写某个批处理脚本时,意外发现 Windows系统中,在不同路径打开的cmd/dos窗口,属性配置竟然不同。

接下来探究下不同路径下打开的dos窗口,属性配置是否相同。

阅读本文之前,建议先看下:Windows 打开cmd/dos窗口的12种方式(全网最全)

以下演示在Win10系统,其他版本系统可能会有不同
为了简便起见,如无特殊说明,就以窗口背景不同作为配置的区别

1. 默认值(控制台窗口)属性

右键开始>命令提示符,打开cmd窗口(其他方式打开也行),在顶部标题栏中右键 > 默认值,打开控制台窗口属性窗口界面,在颜色选项卡下,设置屏幕背景为灰色ColorTable08,确认保存

属性-颜色 里提供了16个ColorTable,数量上不能新增或删除,但是可以修改颜色值。
修改方法:
方法1:在这个窗口选定某个ColorTable,在选定的颜色值区域,修改R G L值,确认即可保存;
方法2:修改注册表:HKEY_CURRENT_USER\Console,找到名称为ColorTable00~ColorTable15 共16个,修改对应的值即可,其中值十六进制表示法,例如:dd963a3a代表R的值十进制5896代表G的值十进制150dd代表L的值十进制221

cmd窗口默认值

然后开始做验证。
1)从开始菜单>Windows系统>命令提示符打开;
2)从Win+R运行>输入cmd回车,打开;
3)从.bat批处理,双击打开(举例:test.bat内容 @echo off & pause
从下边测试效果,可以看出,默认值对这三种方式打开的窗口属性都生效了。

测试效果1

查看注册表HKEY_CURRENT_USER\Console,其中ScreenColors值用来控制窗口前景色及背景色,其值由两个16进制数字组成,这两个数字代表注册表中ColorTable编号。举例:ScreenColors值为87,则表示使用ColorTable08指定的值作为背景色,使用ColorTable07指定的值作为前景色。该解释参考自color /?

2. “C:\Windows\System32\cmd.exe” 属性

Win+R运行>输入cmd回车,打开cmd窗口,在顶部标题栏中右键 > 属性,打开C:\Windows\System32\cmd.exe属性窗口界面,在颜色选项卡下,设置屏幕背景为第4个ColorTable03,蓝色,确认保存。

修改cmd.exe属性

然后开始做验证。
1)从开始菜单>Windows系统>命令提示符打开;
2)从Win+R运行>输入cmd回车,打开;
3)从.bat批处理,双击打开(举例:test.bat内容 @echo off & pause
从下边测试效果,可以看出,修改cmd.exe属性,仅对通过C:\Windows\System32\cmd.exe打开的窗口有效,对从开始菜单打开的命令提示符窗口无效(双击.bat批处理,实际上也是调用的C:\Windows\System32\cmd.exe程序来执行的)

测试效果2

此时你如果打开注册表HKEY_CURRENT_USER\Console,你会发现在它下边多了个子项%SystemRoot%_System32_cmd.exe(如果你从没有修改过C:\Windows\System32\cmd.exe属性,是没有这个子项的)。
在这个子项下,ScreenColors的值 就是新修改的cmd窗口的背景色值&前景色配置37,即 背景色为ColorTable03的指定的颜色值,前景色为ColorTable07的指定的颜色值。

cmd.exe注册表项配置

3. "命令提示符"属性

开始菜单>Windows系统>命令提示符打开。在顶部标题栏中右键 > 属性,打开命令提示符属性窗口界面,在颜色选项卡下,设置屏幕背景为淡绿色ColorTable10,蓝色,确认保存。

修改命令提示符属性

然后开始做验证。
1)从开始菜单>Windows系统>命令提示符打开;
2)从Win+R运行>输入cmd回车,打开;
3)从.bat批处理,双击打开(举例:test.bat内容 @echo off & pause
从下边测试效果,可以看出,修改命令提示符属性,仅对命令提示符窗口有效。

测试效果3
此时你如果打开注册表HKEY_CURRENT_USER\Console,在其下,是没有任何关于命令提示符相关的项。

你可以将注册表导出,然后重新修改命令提示符的属性,然后再导出注册表,将两个导出的注册表进行比对,来验证这一点

4. 自定义某标题cmd窗口属性

在注册表HKEY_CURRENT_USER\Console下,新增一个子项,这里假如名为 Chen,然后再在这个子项下添加一个DWORD类型的值,名称为ScreenColors,值为十六进制的c7,表示背景色为淡红色,前景色白色。

在这里插入图片描述

然后开始做验证。
1)随便一种方式,打开一个cmd命令行窗口,输入start "Chen"Chen替换为你自定义的命令行窗口标题
2)然后用Start命令再启动一个"Test"标题的命令行窗口(确认你未在注册表未使用过"Test"作为子项名)
验证效果如下↓ ,从测试结果看,标题为Chen的命令行窗口,使用了注册表HKEY_CURRENT_USER\Console下的子项Chen里配置的ScreenColors值,而Test标题的命令行窗口,使用了注册表HKEY_CURRENT_USER\Console里的ScreenColors值(即默认属性值)

自定义标题的窗口属性

5. cmd快捷方式的属性

1)进入到C:\Windows\system32目录,右键菜单创建快捷方式,将快捷方式放到桌面,然后给快捷方式建一个名字,比如我这里命名为lnkcmd1.lnk,然后再从lnkcmd1.lnk复制出来一个lnkcmd2.lnk
2)双击lnkcmd2.lnk 打开命令行窗口,在标题栏右键>属性,切换到颜色选项卡,然后在这个快捷方式文件上,右键>属性,在颜色选项卡下,设置屏幕背景为淡绿色ColorTable13,淡紫色,应用保存;
lnkcmd1.lnk不要改,保持原样)

修改lnk属性

然后开始做验证。
1)分别双击两个lnk快捷方式
从测试结果看,lnkcmd1.lnk使用了默认属性值,而lnkcmd2.lnk使用了自定义的属性值。

对比两个新创建的lnk快捷方式
此时你如果打开注册表HKEY_CURRENT_USER\Console,在其下,是没有任何关于lnkcmd2.lnk相关的项的。

其实lnkcmd2.lnk的属性是保存到了这个快捷方式文件内的。下边来验证下这点。
将下面的python代码,保存到getLnkInfo.py文件,然后也放到桌面。

# -*- coding:utf-8 -*-
import sys
import LnkParse3
f_path = sys.argv[1]
with open(""+f_path,"rb") as lf:
    ldata = LnkParse3.lnk_file(lf)
    ldata.print_json()         # 打印输出格式化后的json数据

在命令行分别执行如下命令:
注意:
1)你需要安装python3环境,并安装LnkParse3库,命令pip install LnkParse3
2)桌面路径需改为你自己的;
3).lnk.py文件放在同一目录,否则你需要使用绝对路径;

cd C:\Users\cyinl\Desktop
python getLnkInfo.py lnkcmd1.lnk > lnkinfo1.txt
python getLnkInfo.py lnkcmd2.lnk > lnkinfo2.txt

然后用文本对比工具 对比 lnkinfo1.txtlnkinfo2.txt,可以看出
1)lnkcmd2.lnk的命令行窗口属性是保存到该快捷方式文件本身的,在lnkinfo2.txt体现在extra.CONSOLE_PROPERTIES_BLOCK对象各属性值,其中这里的fill_attributes就是前景色、背景色属性信息,215是十进制,转换为十六进制为d7d表示背景色对应ColorTable13对应的颜色值(淡紫色),7表示前景色对应ColorTable07对应的颜色值(白色)
2)lnkcmd1.lnk的命令行窗口属性,从lnkinfo1.txt信息看,没有找到extra.CONSOLE_PROPERTIES_BLOCK对象,因此推测它应该是沿用了HKEY_CURRENT_USER\Console注册表中相关的属性配置。

lnk属性对比

为了验证【lnkcmd1.lnk的命令行窗口属性,是使用HKEY_CURRENT_USER\Console注册表中相关的属性配置】这个推出,再做个测试。
lnkcmd1.lnk重命名为Chen.lnk,然后双击打开这个快捷方式。

Chen.lnk命令行窗口
细心的你应该能发现,这个颜色值,就是 【4. 自定义某标题cmd窗口属性】中,在注册表HKEY_CURRENT_USER\Console\Chen下配置的ScreenColors的值c7(背景色为淡红色,前景色白色)。

也就是说Chen.lnk快捷方式文件里没有命令行窗口属性信息,于是它从注册表HKEY_CURRENT_USER\Console\Chen去找,如果找到就加载配置,如果没有同标题名的Chen子项,就是用HKEY_CURRENT_USER\Console里默认的配置信息。

总结

  1. 通过cmd.exe应用程序直接打开的命令行窗口,会在注册表HKEY_CURRENT_USER\Console,找与窗口标题同名的子项的配置,如果未找到子项或子项下没有某个配置,则使用HKEY_CURRENT_USER\Console下的默认配置;
  2. (从cmd.exe创建的).lnk快捷方式打开的命令行窗口,如果从未修改过该快捷方式对应的属性,那么它打开的窗口属性,是从注册表HKEY_CURRENT_USER\Console下同名的子项中加载,如果没找到子项或子项下没有某个配置,则加载HKEY_CURRENT_USER\Console下的默认配置;
  3. 如果修改过.lnk快捷方式对应的属性,那么它的命令行窗口属性信息,将保存到快捷方式文件本身,而不再从注册表加载配置;
  4. 开始菜单的命令提示符,实际上就是一个lnk快捷方式,因此它遵循总结2、3的规则


相关文章:
Windows 打开cmd/dos窗口的12种方式(全网最全)
Windows 如何打开和编辑.lnk文件



参考资料:
what’s the difference between command prompt and cmd?
Where do my Windows Command Prompt properties get saved

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/48361.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

通过cmake工程生成visual studio解决方案

1、前言 visual studio是一个很强大的开发工具,这个工具主要是通过解决方案对我们的源码进行编译等操作。但是我们很多时候拿到的可能并不是一个直接的解决方案,可能是是一个cmake工程,那么这个时候我们就需要通过cmake工程生成解决方案&…

三元运算符引发的自动拆装箱问题

文章目录 问题背景问题排查排查过程问题扩展总结 问题背景 生产环境上出现空指针异常,追踪报错位置得知以下代码报错 if (isNull(aiGroup)) {return null;}aiGroup.setNum(isNull(param.getNum()) ? aiGroup.getNum() : param.getNum().doubleValue());问题排查 …

【C语言】文件操作重点内容梳理

本文目录 1. 什么是文件 1.1 程序文件 1.2 数据文件 1.3 文件名 2. 文件的打开和关闭 2.1 文件指针 2.2 文件的打开和关闭 3. 文件的顺序读写 3.1 顺序读写函数介绍 4. 文件的随机读写 4.1 fseek 4.2 ftell 4.3 rewind 5. 文本文件和二进制文件 6. 文件读取结束的判定 6.1 被错…

Bert经典变体学习

ALBert ALBERT就是为了解决模型参数量大以及训练时间过长的问题。ALBERT最小的参数只有十几M, 效果要比BERT低1-2个点,最大的xxlarge也就200多M。可以看到在模型参数量上减少的还是非常明显的,但是在速度上似乎没有那么明显。最大的问题就是这种方式其实…

uniapp:手写签名,多张图合成一张图

要实现的内容&#xff1a;手写签名&#xff0c;协议内容。点击提交后&#xff1a;生成1张图片&#xff0c;有协议内容和签署日期和签署人。 实现的效果图如下&#xff1a; 1、签名页面 <template><view class"index"><u-navbar title"电子协议…

《MySQL》第十二篇 数据类型

目录 一. 整数类型二. 浮点类型三. 日期和时间类型四. 字符串类型五. 枚举值类型六. 二进制类型七. 小结 MySQL 支持多种数据类型&#xff0c;学习好数据类型&#xff0c;才能更好的学习 MySQL 表的设计&#xff0c;让表的设计更加合理。 一. 整数类型 类型大小SIGNED(有符号)…

7D透明屏的市场应用广泛,在智能家居中有哪些应用表现?

7D透明屏是一种新型的显示技术&#xff0c;它能够实现透明度高达70%以上的显示效果。这种屏幕可以应用于各种领域&#xff0c;如商业广告、展览展示、智能家居等&#xff0c;具有广阔的市场前景。 7D透明屏的工作原理是利用光学投影技术&#xff0c;将图像通过透明屏幕投射出来…

国产化 | 走近人大金仓-KingbaseES数据库

引入 事务隔离级别 || KingbaseES数据库 开篇 1、KingbaseES数据库 百度百科&#xff1a;金仓数据库的最新版本为KingbaseES V8&#xff0c; KingbaseES V8在系统的可靠性、可用性、性能和兼容性等方面进行了重大改进&#xff0c;支持多种操作系统和硬件平台支持Unix、Linux…

基于罪名法务智能知识图谱(含码源):基于280万罪名预测、20W法务问答与法律资讯问答功能

项目设计集合&#xff08;人工智能方向&#xff09;&#xff1a;助力新人快速实战掌握技能、自主完成项目设计升级&#xff0c;提升自身的硬实力&#xff08;不仅限NLP、知识图谱、计算机视觉等领域&#xff09;&#xff1a;汇总有意义的项目设计集合&#xff0c;助力新人快速实…

ThinkPHP8知识详解:给PHP8和MySQL8添加到环境变量

在PHPenv安装的时候&#xff0c;环境变量默认的PHP版本是7.4的&#xff0c;MySQL的版本是5.7的&#xff0c;要想使用ThinkPHP8来开发&#xff0c;就必须修改环境变量&#xff0c;本文就详细讲解了如果修改PHP和MySQL的环境变量。 1、添加网站 启动phpenv&#xff0c;网站&…

019 - STM32学习笔记 - Fatfs文件系统(一) - FatFs文件系统初识

019 - STM32学习笔记 - Fatfs文件系统&#xff08;一&#xff09; - FatFs文件系统初识 最近工作比较忙&#xff0c;没时间摸鱼学习&#xff0c;抽空学点就整理一点笔记。 1、文件系统 在之前学习Flash的时候&#xff0c;可以调用SPI_FLASH_BufferWrite函数&#xff0c;将数…

四步从菜鸟到高手,Python编程真的很简单(送书第一期:文末送书2本)

&#x1f341;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; &#x1f40b; 希望大家多多支持&#xff0c;我…

临床医学怎样翻译比较 好

近年来&#xff0c;随着不同国家之间医药行业形成的共同研究趋势&#xff0c;临床翻译对于来自不同国家的医疗人员的合作至关重要。那么&#xff0c;临床医学怎样翻译比较 好&#xff0c;北京哪个翻译公司比较专业&#xff1f; 据了解&#xff0c;临床医学翻译包含患者病历记录…

Linux之 Vim 搜索方式

方式一&#xff1a;快速搜索&#xff08;字符串完全匹配&#xff0c;区分大小写&#xff09; 格式&#xff1a; / 关键词 or &#xff1f; 关键词 /内容 #按回车键搜索 从上到下查找 ?内容 #按回车键搜索 从下到上查找 优点&#xff1a;快速定位到该关键字 回车之后&…

【Lua学习笔记】Lua进阶——Require,三目运算

文章目录 Require短路判断实现三目运算符 Require 这是文件aaa.lua的内容 aaa.lua: a 10 local b 20 print("我是aaa")这是文件example.lua的内容 example.lua: a 100 print(a) require("aaa") --require调用其他脚本文件 print(a) print(b) print(&…

Psim 2022仿真软件的安装--Psim电力仿真实战教程

文章目录 Psim 2022 仿真软件安装及使用教程软件介绍1.下载psim 2022安装软件&#xff0c;有需要的亲请联系作者。2.点击安装文件3.点击进行安装&#xff1a;4.安装完成&#xff0c;打开软件&#xff0c;开始仿真5.仿真模型介绍5.1.单相全控整流电路仿真5.2 三相PFC可控整流电路…

【点选验证码】生成点选验证码图片

生成点选验证码图片 参考博客&#xff1a;https://blog.csdn.net/sinat_39629323/article/details/121989609 from tqdm import tqdm from PIL import Image, ImageDraw, ImageFont, ImageOps import shutil,os import numpy as np import cv2 import math import random fil…

Mysql的增删改查

一.增加数据&#xff08;insert&#xff09; insert into 表名&#xff08;列名1&#xff0c;列名2&#xff0c;列名3&#xff0c;.....列名n&#xff09;values(值&#xff0c;值&#xff0c;值&#xff0c;....值&#xff09; insert into userinfo(id,name,age) values(&quo…

CSS3 实现边框圆角渐变色渐变文字效果

.boder-txt {width: 80px;height: 30px; line-height: 30px;padding: 5px;text-align: center;border-radius: 10px;border: 6rpx solid transparent;background-clip: padding-box, border-box;background-origin: padding-box, border-box;/*第一个linear-gradient表示内填充…

二级制部署kubernetes(1.20)

&#x1f618;作者简介&#xff1a;一名运维工作人员。 &#x1f44a;宣言&#xff1a;人生就是B&#xff08;birth&#xff09;和D&#xff08;death&#xff09;之间的C&#xff08;choise&#xff09;&#xff0c;做好每一个选择。 &#x1f64f;创作不易&#xff0c;动动小…