【已解决】如何解决批处理中文变问号问题
本帖最后由 青青草 于 2022-2-17 14:51 编辑今天有空,试着对mas 1.5进行汉化,开头很顺利,显示中文正常。
当汉化到
echo. 激活 - Windows
echo. Activate - Office
echo. Activate - All时,运行批处理,中文字 “激活”变成了问号。
这是什么原因造成的呢?请大神们赐教!谢谢!
感谢 hua_wuxin 大神!
不好意思,发错位置了,应该发到脚本讨论区才对。烦请版主移贴。谢谢!
改成ansi就好了。 压缩包有密码?,请把批处理文件完整上传 2010techon 发表于 2022-2-17 12:44
压缩包有密码?,请把批处理文件完整上传
密码:1234 2010techon 发表于 2022-2-17 12:44
压缩包有密码?,请把批处理文件完整上传
已上传。
谢谢! 窄口牛 发表于 2022-2-17 12:44
改成ansi就好了。
应该不是这原因。 一万多行的批处理,看着让人头大,中文问号一般是编码问题或者命令行模式的事 2010techon 发表于 2022-2-17 13:15
一万多行的批处理,看着让人头大,中文问号一般是编码问题或者命令行模式的事
就"在线kms激活“部分的内容汉化出问题。你可直接关注"在线kms激活“部分。 路过 mode con 语句去掉试试 laozhao 发表于 2022-2-17 13:31
mode con 语句去掉试试
与 mode con 无关。 明确在显示信息之前加入chcp 936然后用记事本 ANSI保存? sunsea 发表于 2022-2-17 13:40
明确在显示信息之前加入chcp 936然后用记事本 ANSI保存?
试过,没有效果。 青青草 发表于 2022-2-17 13:45
试过,没有效果。
ANSI保存的 本帖最后由 hu.man 于 2022-2-17 14:16 编辑
路過看看
把616行由
%nul% %_psc% "$f=::ReadAllText('!_batp!') -split \":%~1\:.*`r`n\"; ::WriteAllText('%~2',$f.Trim(),::%~3);"
改为
%nul% %_psc% "$f=::ReadAllText('!_batp!',::Default) -split \":%~1\:.*`r`n\"; ::WriteAllText('%~2',$f.Trim(),::Default);"
621行可能也要改。
hua_wuxin 发表于 2022-2-17 14:12
把616行由
%nul% %_psc% "$f=::ReadAllText('!_batp!') -split \":%~1\:.*`r`n\"; ::WriteAllText('%~2',$ ...
我试试 hua_wuxin 发表于 2022-2-17 14:12
把616行由
%nul% %_psc% "$f=::ReadAllText('!_batp!') -split \":%~1\:.*`r`n\"; ::WriteAllText('%~2',$ ...
解决了!
谢谢! 本帖最后由 2010techon 于 2022-2-17 15:00 编辑
青青草 发表于 2022-2-17 13:23
就"在线kms激活“部分的内容汉化出问题。你可直接关注"在线kms激活“部分。-----发完才看到已解决,删了吧
:MainMenu 主界面:
:MainMenu
cls
color 07
titleMicrosoft Activation Scripts AIO 1.5
mode 76, 30
if exist "%mastemp%\.*" rmdir /s /q "%mastemp%\" %nul%
echo:
echo:
echo:
echo:
echo: ______________________________________________________________
echo:
echo: Activation Methods:
echo:
echo: HWID ^|Permanent^|Win 10-11
echo: KMS38 ^|Till 2038^|Win 10-11-Server
echo: Online KMS^|180 Days ^|Win / Office
echo: __________________________________________________
echo:
echo: Check Activation Status
echo: Check Activation Status
echo: Extras
echo: __________________________________________________
echo:
echo: Read Me
echo: Exit
echo: ______________________________________________________________
echo:
call :_color2 %_White% " " %_Green% "Enter a menu option in the Keyboard :"
choice /C:12345678 /N
set _erl=%errorlevel%
if %_erl%==8 exit /b
if %_erl%==7 start https://windowsaddict.ml & goto :MainMenu
if %_erl%==6 goto:Extras
if %_erl%==5 setlocal & call :_Check_Status_wmi_ext & cls & endlocal & goto :MainMenu
if %_erl%==4 setlocal & call :_Check_Status_vbs & cls & endlocal & goto :MainMenu
if %_erl%==3 setlocal & call :KMSActivation & cls & endlocal & goto :MainMenu是号选项吧? 执行 call :KMSActivation
在 :KMSActivation 内有:
call :_export kacttxt "%mastemp%\Activate.cmd" ASCII
call "%mastemp%\Activate.cmd"
:_export部分:
::Extract the text from batch script without character issue
:_Export
%nul% %_psc% "$f=::ReadAllText('!_batp!') -split \":%~1\:.*`r`n\"; ::WriteAllText('%~2',$f.Trim(),::%~3);"
exit /b
很可能是这里调用powershell 将编码转为ASCII的原因。。。
2010techon 发表于 2022-2-17 14:56
-----发完才看到已解决,删了吧
:MainMenu 主界面:
是号选项吧? 执行 call :KMSActivation
谢谢!
页:
[1]