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个,修改对应的值即可,其中值十六进制表示法,例如:dd963a
,3a
代表R
的值十进制58
,96
代表G
的值十进制150
,dd
代表L
的值十进制221
然后开始做验证。
1)从开始菜单
>Windows系统
>命令提示符
打开;
2)从Win+R
运行>输入cmd
回车,打开;
3)从.bat
批处理,双击打开(举例:test.bat
内容 @echo off & pause
)
从下边测试效果,可以看出,默认值对这三种方式打开的窗口属性都生效了。
查看注册表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
,蓝色,确认保存。
然后开始做验证。
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
程序来执行的)
此时你如果打开注册表HKEY_CURRENT_USER\Console
,你会发现在它下边多了个子项%SystemRoot%_System32_cmd.exe
(如果你从没有修改过C:\Windows\System32\cmd.exe
属性,是没有这个子项的)。
在这个子项下,ScreenColors
的值 就是新修改的cmd窗口的背景色值&前景色配置37
,即 背景色为ColorTable03
的指定的颜色值,前景色为ColorTable07
的指定的颜色值。
3. "命令提示符"属性
从开始菜单
>Windows系统
>命令提示符
打开。在顶部标题栏中右键 > 属性
,打开命令提示符
属性窗口界面,在颜色
选项卡下,设置屏幕背景
为淡绿色ColorTable10
,蓝色,确认保存。
然后开始做验证。
1)从开始菜单
>Windows系统
>命令提示符
打开;
2)从Win+R
运行>输入cmd
回车,打开;
3)从.bat
批处理,双击打开(举例:test.bat
内容 @echo off & pause
)
从下边测试效果,可以看出,修改命令提示符
属性,仅对命令提示符
窗口有效。
此时你如果打开注册表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
不要改,保持原样)
然后开始做验证。
1)分别双击两个lnk快捷方式
从测试结果看,lnkcmd1.lnk
使用了默认属性值,而lnkcmd2.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.txt
、lnkinfo2.txt
,可以看出
1)lnkcmd2.lnk
的命令行窗口属性是保存到该快捷方式文件本身的,在lnkinfo2.txt
体现在extra.CONSOLE_PROPERTIES_BLOCK
对象各属性值,其中这里的fill_attributes
就是前景色、背景色属性信息,215
是十进制,转换为十六进制为d7
,d
表示背景色对应ColorTable13
对应的颜色值(淡紫色),7
表示前景色对应ColorTable07
对应的颜色值(白色)
2)lnkcmd1.lnk
的命令行窗口属性,从lnkinfo1.txt
信息看,没有找到extra.CONSOLE_PROPERTIES_BLOCK
对象,因此推测它应该是沿用了HKEY_CURRENT_USER\Console
注册表中相关的属性配置。
为了验证【lnkcmd1.lnk
的命令行窗口属性,是使用HKEY_CURRENT_USER\Console
注册表中相关的属性配置】这个推出,再做个测试。
将lnkcmd1.lnk
重命名为Chen.lnk
,然后双击打开这个快捷方式。
细心的你应该能发现,这个颜色值,就是 【4. 自定义某标题cmd窗口属性】中,在注册表HKEY_CURRENT_USER\Console\Chen
下配置的ScreenColors
的值c7
(背景色为淡红色,前景色白色)。
也就是说Chen.lnk
快捷方式文件里没有命令行窗口属性信息,于是它从注册表HKEY_CURRENT_USER\Console\Chen
去找,如果找到就加载配置,如果没有同标题名的Chen
子项,就是用HKEY_CURRENT_USER\Console
里默认的配置信息。
总结
- 通过
cmd.exe
应用程序直接打开的命令行窗口,会在注册表HKEY_CURRENT_USER\Console
,找与窗口标题同名的子项的配置,如果未找到子项或子项下没有某个配置,则使用HKEY_CURRENT_USER\Console
下的默认配置; - (从cmd.exe创建的)
.lnk
快捷方式打开的命令行窗口,如果从未修改过该快捷方式对应的属性,那么它打开的窗口属性,是从注册表HKEY_CURRENT_USER\Console
下同名的子项中加载,如果没找到子项或子项下没有某个配置,则加载HKEY_CURRENT_USER\Console
下的默认配置; - 如果修改过
.lnk
快捷方式对应的属性,那么它的命令行窗口属性信息,将保存到快捷方式文件本身,而不再从注册表加载配置; - 开始菜单的
命令提示符
,实际上就是一个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
相关文章:

Windows 不同方式打开的cmd/dos窗口属性配置不同
文章目录 1. 默认值(控制台窗口)属性2. "C:\Windows\System32\cmd.exe" 属性3. "命令提示符"属性4. 自定义某标题cmd窗口属性5. cmd快捷方式的属性总结 最近在写某个批处理脚本时,意外发现 Windows系统中,在不…...
性能优化-webpack配置gzip
3步搞定,实测1.3Mjs压缩到363k,体积减少70% 1.装包 yarn add compression-webpack-plugin --dev 2.配置webpack 打开config/webpack.config.js 1)在 module.exports 导出函数前面引入插件 // gzip插件 const CompressionPlugin require(&qu…...

RabbitMQ 教程 | 第3章 客户端开发向导
👨🏻💻 热爱摄影的程序员 👨🏻🎨 喜欢编码的设计师 🧕🏻 擅长设计的剪辑师 🧑🏻🏫 一位高冷无情的编码爱好者 大家好,我是 DevO…...

基于深度学习的CCPD车牌检测系统(PyTorch+Pyside6+YOLOv5模型)
摘要:基于CCPD数据集的高精度车牌检测系统可用于日常生活中检测与定位车牌目标,利用深度学习算法可实现图片、视频、摄像头等方式的车牌目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型训练数据集…...
input元素中的form属性有什么用?
在HTML中,input元素的form属性用于指定该输入字段所属的表单(form元素)。通过将input元素的form属性设置为相应的表单的id值,可以将输入字段与表单进行关联。 这个属性对于两个主要目的非常有用: 表单关联࿱…...

【数据结构篇C++实现】- 特殊的线性表 - 串
友情链接:C/C系列系统学习目录 文章目录 串🚀一、串的定义🚀二、串的存储结构🛴(一)串的顺序存储结构1、定长顺序存储表示2、堆分配存储表示 🛴(二)串的链式存储结构3、块…...
DevOps系列文章 之 Springboot单元测试
在没有代码生成工具或尝试一门新的 ORM框架时,当我们希望不去另外写 Service 和 Controller 来验证 DAO 层的代码不希望只通过接口请求的方式来验证时,这时候单元测试的方式就可以帮助我们满足这一需求。 在我们开发Web应用时,经常会直接去观…...

04 linux之C 语言高级编程
gcc和gdb GNU工具 编译工具:把一个源程序编译为一个可执行程序调试工具:能对执行程序进行源码或汇编级调试软件工程工具:用于协助多人开发或大型软件项目的管理,如make、CVS、Subvision其他工具:用于把多个目标文件链…...

深入学习 Redis - Stream、Geospatial、HyperLogLog、Bitmap、Bitfields 类型扩展
目录 前言 Stream geospatial HyperLogLog Bitmaps Bitfields 前言 redis 中最关键的五个数据类型 String、List、Hash、Set、Zset 应用最广泛,同时 redis 也推出了额外的 5 个数据类型,他们分别是针对特殊场景才进行的应用的. Ps:这几种…...

Windows11+Opencv+Clion编译源码
Windows11OpencvClion编译源码 参考:https://www.robotsfan.com/posts/69395e08.html 注意事项 编译过程中使用的软件,开源码等所有工具的安装路径一定不要有中文和空格。cmake过程会下载一些文件,如果是局域网的话可能下载不下来…...

【机器学习】Cost Function
Cost Function 1、计算 cost2、cost 函数的直观理解3、cost 可视化总结附录 首先,导入所需的库: import numpy as np %matplotlib widget import matplotlib.pyplot as plt from lab_utils_uni import plt_intuition, plt_stationary, plt_update_onclic…...

【黑马头条之内容安全第三方接口】
本笔记内容为黑马头条项目的文本-图片内容审核接口部分 目录 一、概述 二、准备工作 三、文本内容审核接口 四、图片审核接口 五、项目集成 一、概述 内容安全是识别服务,支持对图片、视频、文本、语音等对象进行多样化场景检测,有效降低内容违规风…...

回归预测 | MATLAB实现GRNN广义回归神经网络多输入单输出回归预测(多指标,多图)
回归预测 | MATLAB实现GRNN广义回归神经网络多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现GRNN广义回归神经网络多输入单输出回归预测(多指标,多图)效果一览基本介绍程序设计参考资料效果一览 基本介绍 MATLAB实现GRNN广义回归神经网络多输入单输出回归…...
STM32 HAL库函数——HAL_UART_RxCpltCallback()详解
HAL_UART_RxCpltCallback函数 他是谁,他和谁有关功能用法每收到一个字符,就自动调用一次??示例----接收未知长度的字符 他是谁,他和谁有关 HAL_UART_RxCpltCallback 是一个回调函数,用于在使用 HAL 库进行…...

前端调用合约如何避免出现transaction fail
前言: 作为开发,你一定经历过调用合约的时候发现 gas fee 超出限制,但是不知道报了什么错。这个时候一般都是触发了require错误合约校验。对于用户来说他不理解为什么一笔交易会花费如此大的gas,那我们作为开发如何尽量避免这种情…...
选择器的使用
目录 层级选择器属性选择器伪类选择器结构伪类选择器目标伪类选择器 层级选择器 /*子代选择器:选出box下的所有li标签*/.box>li{background-color: aliceblue;}/* 选出box后面的第一个兄弟li标签 */.boxli{background-color: aliceblue;}/* 选出box后面的所有兄…...

软考A计划-系统集成项目管理工程师-项目干系人管理-上
点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 👉关于作者 专注于Android/Unity和各种游…...

F5 LTM 知识点和实验 2-负载均衡基础概念
第二章:负载均衡基础概念 目标: 使用网页和TMSH配置virtual servers,pools,monitors,profiles和persistence等。查看统计信息 基础概念: Node一个IP地址。是创建pool池的基础。可以手工创建也可以自动创…...

安全学习DAY08_算法加密
算法加密 漏洞分析、漏洞勘测、漏洞探针、挖漏洞时要用到的技术知识 存储密码加密-应用对象传输加密编码-发送回显数据传输格式-统一格式代码特性混淆-开发语言 传输数据 – 加密型&编码型 安全测试时,通常会进行数据的修改增加提交测试 数据在传输的时候进行…...

OpenCloudOS 与PolarDB全面适配
近日,OpenCloudOS 开源社区签署阿里巴巴开源 CLA (Contribution License Agreement, 贡献许可协议), 正式与阿里云 PolarDB 开源数据库社区牵手,并展开 OpenCloudOS (V8)与阿里云开源云原生数据库 PolarDB 分布式版、开源云原生数…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...

Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...

(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
嵌入式常见 CPU 架构
架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集,单周期执行;低功耗、CIP 独立外设;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel(原始…...
HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散
前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说,在叠衣服的过程中,我会带着团队对比各种模型、方法、策略,毕竟针对各个场景始终寻找更优的解决方案,是我个人和我司「七月在线」的职责之一 且个人认为,…...