windows - 更改 .bat 文件中的代码页(Win7 与 Win Vista)

标签 windows command-line batch-file

我在尝试更改 .bat 文件中的代码页时遇到一个奇怪的问题。

当我在 Windows 7 中执行以下 .bat 文件时,它执行正常。

代码页被更改,program.exe 被执行。

批处理文件:

chcp 65001

"D:\program.exe" /opt ÄiÜ

pause

但是,当我从 Windows Vista 启动 .bat 文件时,代码页发生更改,之后批处理文件退出。

所以 program.exe 永远不会被执行。
但是,当我从命令行手动运行这两个命令时,它确实有效。

知道如何通过 .bat 文件让它在 Windows Vista 下工作吗?

最佳答案

这对我来说是新的,这适用于 Win7,在 Vista 和 XP 中,如果代码页更改为 65001,批处理文件不起作用是正常的。

但是你可以使用变通办法

(
  chcp 65001
  cmd /c type myFile.txt
  chcp 850
)
echo the batch is still alive

这是有效的,因为在更改代码页时缓存了完整的 block 。

在你的情况下(使用德语变音符号)你最好使用代码页 1252

chcp 1252
echo ÄÖÜß

关于windows - 更改 .bat 文件中的代码页(Win7 与 Win Vista),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7737599/

相关文章:

对正在运行的程序的 Windows URL 方案调用

c++ - WAN 上 Windows 命名管道的低吞吐量

windows - 从命令行将 DOC 转换为 PDF

batch-file - 批处理脚本 - 对目录中的每个文件运行命令

windows - 如何检测调用powershell脚本的批处理文件是否由Windows启动事件运行

windows - sh 脚本不会将 ssh key 添加到 ssh-agent (windows git bash)

windows - 在 Windows 中是否有从命令提示符刷新环境变量的命令?

R:从命令行运行脚本时显示绘图

command-line - XP命令提示符: redirect a file to STDOUT

windows - 批处理文件: List all folders in current directory with number/counter