在批处理脚本中重定向输出时出现法语重音字符问题

在批处理脚本中重定向输出时出现法语重音字符问题

我正在使用 Windows 7 Pro SP1 x64 French。

控制台(cmd.exe):

> chcp
Page de codes active : 850

> net start MyService
Le service ne répond pas à la fonction de maintenance.
Vous obtiendrez une aide supplémentaire en entrant NET HELPMSG 2186.

批次(UTF-8):

@call :begin 1>log.txt 2>&1
@exit /b
:begin 

@chcp
@net start MyService

日志.txt (ANSI):

Page de codes activeÿ: 850

Le service ne r‚pond pas … la fonction de maintenance.
Vous obtiendrez une aide suppl‚mentaire en entrant NET HELPMSG 2186.

如何强制批处理具有与控制台相同的输出(正确打印法语字符)?

答案1

您可以尝试以这种方式使用临时文件并使用此命令将其重定向:

CMD /U /C Type tmplog.txt>log.txt读取unicode:


@echo off
@call :begin
@call :begin 1>tmplog.txt 2>&1
CMD /U /C Type tmplog.txt>log.txt
Del tmplog.txt
Start "" /MAX log.txt
pause & exit /b

::--------------------------
:begin
net start Myservice
@exit /b
::--------------------------

答案2

在批处理顶部的某处使用:

chcp 1252 >nul

接下来在记事本中转到文件菜单 \ 另存为,在编码中选择“ANSI”,单击“是”以替换当前文件。完成。

在此处输入图片描述

相关内容