无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站Win To Go 极致利器(IXUNCIS固态U盘)广告联系 微信:wuyouceo QQ:184822951
查看: 728|回复: 19

【已解决】如何解决批处理中文变问号问题

[复制链接]
发表于 2022-2-17 12:39:10 | 显示全部楼层 |阅读模式
本帖最后由 青青草 于 2022-2-17 14:51 编辑

今天有空,试着对mas 1.5进行汉化,开头很顺利,显示中文正常。
当汉化到
  1. echo.              [1] 激活 - Windows
  2. echo.              [2] Activate - Office
  3. echo.              [3] Activate - All
复制代码
时,运行批处理,中文字 “激活”变成了问号。
这是什么原因造成的呢?请大神们赐教!谢谢!

感谢 hua_wuxin 大神!

不好意思,发错位置了,应该发到脚本讨论区才对。烦请版主移贴。谢谢!

MAS_1.5.cmd.7z

1.19 MB, 下载次数: 44, 下载积分: 无忧币 -2

发表于 2022-2-17 12:44:04 来自手机 | 显示全部楼层
改成ansi就好了。

点评

应该不是这原因。  详情 回复 发表于 2022-2-17 12:48
回复

使用道具 举报

发表于 2022-2-17 12:44:58 | 显示全部楼层
压缩包有密码?,请把批处理文件完整上传

点评

已上传。 谢谢!  详情 回复 发表于 2022-2-17 12:48
密码:1234  详情 回复 发表于 2022-2-17 12:46
回复

使用道具 举报

 楼主| 发表于 2022-2-17 12:46:02 | 显示全部楼层
2010techon 发表于 2022-2-17 12:44
压缩包有密码?,请把批处理文件完整上传

密码:1234
回复

使用道具 举报

 楼主| 发表于 2022-2-17 12:48:14 | 显示全部楼层
2010techon 发表于 2022-2-17 12:44
压缩包有密码?,请把批处理文件完整上传

已上传。
谢谢!
回复

使用道具 举报

 楼主| 发表于 2022-2-17 12:48:49 | 显示全部楼层

应该不是这原因。
回复

使用道具 举报

发表于 2022-2-17 13:15:02 | 显示全部楼层
一万多行的批处理,看着让人头大,中文问号一般是编码问题或者命令行模式的事

点评

就"在线kms激活“部分的内容汉化出问题。你可直接关注"在线kms激活“部分。  详情 回复 发表于 2022-2-17 13:23
回复

使用道具 举报

 楼主| 发表于 2022-2-17 13:23:33 | 显示全部楼层
2010techon 发表于 2022-2-17 13:15
一万多行的批处理,看着让人头大,中文问号一般是编码问题或者命令行模式的事

就"在线kms激活“部分的内容汉化出问题。你可直接关注"在线kms激活“部分。

点评

是[3]号选项吧? 执行 call :KMSActivation 在 :KMSActivation 内有: :_export部分: 很可能是这里调用powershell 将编码转为ASCII的原因。。。  详情 回复 发表于 2022-2-17 14:56
回复

使用道具 举报

发表于 2022-2-17 13:27:22 | 显示全部楼层
路过
回复

使用道具 举报

发表于 2022-2-17 13:31:25 | 显示全部楼层
mode con 语句去掉试试

点评

与 mode con 无关。  详情 回复 发表于 2022-2-17 13:38
回复

使用道具 举报

 楼主| 发表于 2022-2-17 13:38:17 | 显示全部楼层
laozhao 发表于 2022-2-17 13:31
mode con 语句去掉试试

与 mode con 无关。
回复

使用道具 举报

发表于 2022-2-17 13:40:31 | 显示全部楼层
明确在显示信息之前加入chcp 936然后用记事本 ANSI保存?

点评

试过,没有效果。  详情 回复 发表于 2022-2-17 13:45
回复

使用道具 举报

 楼主| 发表于 2022-2-17 13:45:23 | 显示全部楼层
sunsea 发表于 2022-2-17 13:40
明确在显示信息之前加入chcp 936然后用记事本 ANSI保存?

试过,没有效果。

点评

ANSI保存的  详情 回复 发表于 2022-2-17 13:46
回复

使用道具 举报

 楼主| 发表于 2022-2-17 13:46:13 | 显示全部楼层
青青草 发表于 2022-2-17 13:45
试过,没有效果。

ANSI保存的
回复

使用道具 举报

发表于 2022-2-17 14:07:47 | 显示全部楼层
本帖最后由 hu.man 于 2022-2-17 14:16 编辑

路過看看
回复

使用道具 举报

发表于 2022-2-17 14:12:07 | 显示全部楼层
把616行由
%nul% %_psc% "$f=[io.file]::ReadAllText('!_batp!') -split \":%~1\:.*`r`n\"; [io.file]::WriteAllText('%~2',$f[1].Trim(),[System.Text.Encoding]::%~3);"

改为
%nul% %_psc% "$f=[io.file]::ReadAllText('!_batp!',[System.Text.Encoding]::Default) -split \":%~1\:.*`r`n\"; [io.file]::WriteAllText('%~2',$f[1].Trim(),[System.Text.Encoding]::Default);"
621行可能也要改。

点评

解决了! 谢谢!  详情 回复 发表于 2022-2-17 14:48
我试试  详情 回复 发表于 2022-2-17 14:16
回复

使用道具 举报

 楼主| 发表于 2022-2-17 14:16:24 | 显示全部楼层
hua_wuxin 发表于 2022-2-17 14:12
把616行由
%nul% %_psc% "$f=::ReadAllText('!_batp!') -split \":%~1\:.*`r`n\"; ::WriteAllText('%~2',$ ...

我试试
回复

使用道具 举报

 楼主| 发表于 2022-2-17 14:48:15 | 显示全部楼层
hua_wuxin 发表于 2022-2-17 14:12
把616行由
%nul% %_psc% "$f=::ReadAllText('!_batp!') -split \":%~1\:.*`r`n\"; ::WriteAllText('%~2',$ ...

解决了!
谢谢!
回复

使用道具 举报

发表于 2022-2-17 14:56:33 | 显示全部楼层
本帖最后由 2010techon 于 2022-2-17 15:00 编辑
青青草 发表于 2022-2-17 13:23
就"在线kms激活“部分的内容汉化出问题。你可直接关注"在线kms激活“部分。
-----发完才看到已解决,删了吧
:MainMenu 主界面:
  1. :MainMenu

  2. cls
  3. color 07
  4. title  Microsoft Activation Scripts AIO 1.5
  5. mode 76, 30
  6. if exist "%mastemp%\.*" rmdir /s /q "%mastemp%" %nul%

  7. echo:
  8. echo:
  9. echo:
  10. echo:
  11. echo:       ______________________________________________________________
  12. echo:
  13. echo:                 Activation Methods:
  14. echo:
  15. echo:             [1] HWID        ^|  Permanent  ^|  Win 10-11
  16. echo:             [2] KMS38       ^|  Till 2038  ^|  Win 10-11-Server
  17. echo:             [3] Online KMS  ^|  180 Days   ^|  Win / Office      
  18. echo:             __________________________________________________      
  19. echo:                                                                     
  20. echo:             [4] Check Activation Status [vbs]
  21. echo:             [5] Check Activation Status [wmi]
  22. echo:             [6] Extras                                               
  23. echo:             __________________________________________________      
  24. echo:                                                                     
  25. echo:             [7] Read Me
  26. echo:             [8] Exit                                
  27. echo:       ______________________________________________________________
  28. echo:
  29. call :_color2 %_White% "         " %_Green% "Enter a menu option in the Keyboard [1,2,3,4,5,6,7,8] :"
  30. choice /C:12345678 /N
  31. set _erl=%errorlevel%

  32. if %_erl%==8 exit /b
  33. if %_erl%==7 start https://windowsaddict.ml & goto :MainMenu
  34. if %_erl%==6 goto:Extras
  35. if %_erl%==5 setlocal & call :_Check_Status_wmi_ext & cls & endlocal & goto :MainMenu
  36. if %_erl%==4 setlocal & call :_Check_Status_vbs & cls & endlocal & goto :MainMenu
  37. if %_erl%==3 setlocal & call :KMSActivation     & cls & endlocal & goto :MainMenu
复制代码
是[3]号选项吧? 执行 call :KMSActivation
在 :KMSActivation 内有:
  1. call :_export kacttxt "%mastemp%\Activate.cmd" ASCII
  2. call "%mastemp%\Activate.cmd"
复制代码

:_export部分:
  1. ::  Extract the text from batch script without character issue

  2. :_Export

  3. %nul% %_psc% "$f=[io.file]::ReadAllText('!_batp!') -split ":%~1\:.*`r`n"; [io.file]::WriteAllText('%~2',$f[1].Trim(),[System.Text.Encoding]::%~3);"
  4. exit /b
复制代码

很可能是这里调用powershell 将编码转为ASCII的原因。。。

点评

谢谢!  详情 回复 发表于 2022-2-17 18:11
回复

使用道具 举报

 楼主| 发表于 2022-2-17 18:11:05 | 显示全部楼层
2010techon 发表于 2022-2-17 14:56
-----发完才看到已解决,删了吧
:MainMenu 主界面:
是[3]号选项吧? 执行 call :KMSActivation

谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2022-8-14 15:43

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表