【问题标题】:Changing codepage in .bat file (Win7 vs Win Vista)更改 .bat 文件中的代码页(Win7 与 Win Vista)
【发布时间】:2011-10-12 09:01:33
【问题描述】:

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

当我在 Windows 7 中执行以下 .bat 文件时,它运行良好。

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

批处理文件:

chcp 65001

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

pause

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

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

知道如何通过 .bat 文件在 Windows Vista 下使用它吗?

【问题讨论】:

    标签: windows command-line batch-file


    【解决方案1】:

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

    但你可以使用解决方法

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

    这是可行的,因为在更改代码页时会缓存完整的块。

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

    chcp 1252
    echo ÄÖÜß
    

    【讨论】:

    • 不起作用。执行命令 (program.exe) 时,代码页似乎(尚未)未更改。 :(
    • 也试过oneliner:( chcp 65001 && "D:\program.exe" /opt ÄiÜ && chcp 850 )没有运气
    • 当您尝试直接访问元音变音时它会失败。它适用于文件。我编辑了我的答案
    • 感谢您迄今为止的所有帮助。但是它仍然不起作用。 .txt 文件中的命令没有被执行。
    • 关于您对使用其他代码页的评论。恐怕这是不可能的,因为我将使用 UTF-8 字符。字符串只是一个例子。
    【解决方案2】:

    您检查过chcp (chcp 65001 & echo %ERRORLEVEL%) 的返回码吗?

    不管怎样,试试chcp 65001 & "D:\program.exe" /opt ÄiÜ & chcp 850。

    【讨论】:

      【解决方案3】:

      我找到了一个适合我的(非常肮脏的)解决方案。

      从表面上看,我想做的事情是不可能的。

      我为使其工作所做的工作如下:

      • 我没有尝试创建批处理文件,而是创建了一个 .txt 文件(与批处理文件具有相同的内容)。
      • 我编写了一个非常简单的 C# 程序,它读取 .txt 文件并执行内容。

      正如我所说,它很脏,但它对我有用。

      如果这里添加了其他答案,我也会尝试。

      【讨论】:

        【解决方案4】:

        一个不那么丑陋的解决方案,当我需要在批处理文件中使用带有特殊字符的文件名作为参数时,我会使用它:

        1. 将 dir 命令的输出定向到 txt 文件(dir c:\foldername > diroutput.txt)
        2. 在记事本中打开diroutput.txt,找到带有特殊字符的文件名并复制到剪贴板(看起来像垃圾,但没关系)
        3. 将文件名粘贴到在记事本中打开的批处理文件中。

        如果您在“dos”窗口中输入批处理文件内容(输入 batchfilename.bat),您将看到文件名是正确的。 (它在文件查看器内置的总命令中看起来也正确,但在记事本中看起来很垃圾)

        【讨论】:

          猜你喜欢
          • 2011-01-06
          • 1970-01-01
          • 2011-01-09
          • 2011-06-14
          • 2011-06-09
          • 1970-01-01
          • 2013-11-06
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多