小编psy*_*low的帖子

控制重定向 win 控制台命令输出的编码

这是我想做的:

\n\n

将控制台应用程序的输出(我在消息的其余部分中使用术语命令)正确重定向到具有 1252 编码的文件中(以使其可以在默认配置下从任何记事本软件中读取)。

\n\n

我\xe2\x80\x99观察到的:

\n\n

Chcp 对内部命令和一些外部命令(最近​​的)有效

\n\n

首先值得注意的是,CHCP 在 Win7 和 Win 10 下的运行方式有所不同。

\n\n

如果从 cmd 提示符运行以下批处理,您会注意到命令输出在 win10 控制台中正确显示,而 win7 控制台则严重渲染 ASCII 字符。

\n\n
for /f "tokens=2 delims=:" %%G in (\'chcp\') do Set _cp_=%%G\nchcp 1252\n@echo test an internal command\ndir\n@echo test an external (recent) command: Robocopy\nrobocopy .\\ .\\ /L\n@echo test an external (legacy) command: Xcopy\nxcopy test.txt 2>&1\nchcp %_cp_%\necho end of test.cmd batch \n
Run Code Online (Sandbox Code Playgroud)\n\n

顺便说一句,我有兴趣知道是什么导致了这种差异,尽管它\xe2\x80\x99s并不是该消息的真正目的,并且因为它\xe2\x80\x99s可以通过添加 ps 调用 \xe2\x80\x9cpowershell 轻松修复[ console]::outputencoding=[system.text.encoding]::getencoding(850)\xe2\x80\x9d 在第一个 chcp 命令之后的批处理中。

\n\n …

windows batch command-line localization

6
推荐指数
1
解决办法
3730
查看次数

标签 统计

batch ×1

command-line ×1

localization ×1

windows ×1