# test.bat
reg add "HKEY_CLASSES_ROOT\CLSID\{xxxxx-xxxx-xxxx-xxxx-xxxx}" /ve /t REG_SZ /d "中文" /f
网上说的修改批处理文件的编码为ANSI,只能解决批处理打印为中文的问题,但是写入到注册表就无效了
chcp语法会导致第三行的reg命令被吞掉,见红线处:
bat
文件使用GBK
编码保存reg add
前先执行chcp 65001 > nul
reg add
后,需要执行chcp 936 > nul
\r\n
换行在批处理(Batch)文件中直接写入包含中文的注册表项时,确实可能会遇到乱码问题,这主要是因为批处理文件本身对字符编码的支持有限。尽管将批处理文件的编码改为ANSI可以在某些情况下解决显示中文的问题,但在写入注册表时,这种改变并不总是有效。
为了解决这个问题,你可以使用Windows Script Host(WSH)的JScript或VBScript来辅助你的批处理文件,因为这两种脚本语言对Unicode字符的支持更好。以下是一个使用JScript的示例,该脚本可以在批处理文件中调用,以写入包含中文的注册表项:
WriteRegValue.js
):// WriteRegValue.js
var WshShell = WScript.CreateObject("WScript.Shell");
var keyPath = "HKEY_CLASSES_ROOT\\CLSID\\{xxxxx-xxxx-xxxx-xxxx-xxxx}";
var valueName = ""; // 空字符串表示默认(无名称)值
var valueData = "中文";
WshShell.RegWrite(keyPath + "\\" + valueName, valueData, "REG_SZ");
@echo off
cscript //nologo WriteRegValue.js
echo 已写入注册表项。
pause
这种方法通过使用JScript来执行注册表操作,可以有效地绕过批处理文件在字符编码上的限制。
注意:
{xxxxx-xxxx-xxxx-xxxx-xxxx}
替换为你实际的CLSID。//nologo
参数用于在调用cscript
时隐藏其启动信息。注册表是Windows系统的关键要素之一。 它包含有关操作系统各个方面的大量信息。 几乎所有安装在Windows系统上的应用程序都以某种形式与注册表交互。 注册表包含两个基本元素:键和值。 注册表项是与文件夹类似的容器对象。 注册表值是与文件类似的非容器对象。键可能包含值或其他键。 使用类似于Windows路径名称的语法来引用键,并使用反斜杠来指示层次结构的级别。 本章介绍查询值,添加,删除和编辑
我正在创建一个c项目,它应该可以在几个时区工作。应用程序接收到一个带有参考时区的事件,该事件在用户所在的本地时区的正确时间以图形方式显示给用户。例如,一个在柏林工作的用户收到一个在东京编写的事件。来自东京的事件首先转换为UTC时间,然后再从UTC转换为柏林的计算机本地时间,最后显示在用户的图形界面上。 要将UTC时间转换为本地计算机时间,我可以使用Windows API的几个功能来完成这项工作。但
方式1:在脚本编辑器里一句一句地写,需要熟悉注册表相关知识和NSIS脚本语法。 如 ;关闭XP文件保护 WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" "SFCDisable" 0xffffff9d ;开放匿名方式获取本机信息 WriteRegDWORD HKLM "SYSTEM\Current
问题内容: 使用Java读/写Windows注册表 问题答案: 我知道这个问题很旧,但这是Google上第一个”java read/write to registry”的搜索结果。最近,我发现了这段惊人的代码: 可以读/写注册表的任何部分。 不使用JNI。 请勿使用任何第三方/外部应用程序进行工作。 不直接使用WINDOWS API 这是纯Java代码。 通过实际访问类中的私有方法,它使用反射来工
问题内容: 使用Java读/写Windows注册表? 问题答案: Java Native Access(JNA)是用于处理本机库的出色项目,并且通过Advapi32Util和Advapi32支持平台库(platform.jar)中的Windows注册表。
我目前正在尝试用Kotlin为Android编写一个注释处理器。项目结构如下: 项目/构建.gradle 注释/build.gradle 样品/build.gradle Annotation.kt AnnotationProcessor.kt 使用kapt,构建在示例javaPreCompileDebug上中断,并显示以下消息: 当我用注释处理器替换 kapt 时,构建在示例:转换类上中断了以下消
我有一个Spring批处理应用程序,它从mysql数据库读取数据,并将其写入csv文件。 问题:当我看到csv中的数据时,我面临的问题是,一些大的数字显示为指数值。例如,对于这个数字“4491611100277480”,它显示为“4.49161E 15” 下面是我正在使用的代码片段
我们正在使用Cassandra 2.0.10和CassandraC驱动程序1.0.0beta4 WARN[本机传输请求: 83088] 2015-01-08 22:56:15,327BatchStatement.java(第226行)[clipmine_prod.tag_attributes,clipmine_prod.tag]的一批准备好的语句大小为5812,超过5120的指定阈值692。 这意