运行带有重音字符的BAT / CMD文件

时间:2011-09-28 13:57:50

标签: batch-file codepages

我有一个Windows批处理文件,其中包含在路径包含重音字符的位置执行EXE文件的指令。以下是批处理文件的内容。

@echo off
C:\español\jre\bin\java.exe -version

C:\español\ jre \ bin \ java.exe - 此路径存在且正确。我可以直接在cmd.exe上运行此命令。但是,当我从bat / cmd文件运行命令时,它无法说“系统找不到指定的路径”

解决此问题的一种方法是将代码页设置为1252(适用于我)。但我担心我们必须为任何非英语语言环境设置代码页,并确定使用哪个代码页非常困难。

是否有其他方法可以解决此问题?也许是命令行选项或其他什么?

7 个答案:

答案 0 :(得分:17)

在Windows中执行此操作的另一种方法是使用 wordpad.exe

  
      
  1. 运行 wordpad.exe
  2.   
  3. 按照惯例编写脚本
  4.   
  5. 选择另存为> 其他格式
  6.   
  7. 选择将其另存为文本文档MS-DOS(* .txt)
  8.   
  9. 将文件扩展名从.txt更改为.bat
  10.   

答案 1 :(得分:9)

我遇到了同样的问题,this answer解决了这个问题。基本上你必须用一堆命令包装你的脚本来更改你的终端代码页,然后恢复它。

@echo off
for /f "tokens=2 delims=:." %%x in ('chcp') do set cp=%%x
chcp 1252>nul

:: your stuff here ::

chcp %cp%>nul

像魅力一样工作!

答案 2 :(得分:6)

由于您有@echo off,因此无法看到批处理发送到命令提示符的内容。使用它重现您的问题似乎ñ字符被误解,因为我看到的输出是:

C:\espa±ol\jre\bin\java -version
The system cannot find the path specified.

我能够通过从命令提示符将命令回显到批处理文件来使其工作,即

echo C:\español\jre\bin\java.exe -version>>test.bat

这似乎将字符转换为命令提示符所寻找的任何内容,尽管我仅使用英语语言环境设置对其进行测试,因此我不知道它是否适用于所有情况。此外,如果您在文本编辑器(如记事本)中打开批处理,则看起来不对(C:\espa¤ol\jre\bin\java.exe

答案 3 :(得分:4)

我正在使用Notepad ++,它可以选择更改“字符集”,OEM-US就可以了。 ;)

答案 4 :(得分:3)

在批处理文件中使用 Alt + 0164 代替 Alt + 164 ñ...它看起来很奇怪,但你的脚本应该运行。

答案 5 :(得分:0)

我也有同样的问题。我试图创建一个简单的XCOPY批处理文件,将电子表格从一个文件夹复制到另一个文件夹。它的名字中有“é”字符,它拒绝复制。

即使尝试使用Katalin和Metalcoder的建议也无法在我的新石器时代的Windows XP机器上运行。然后我突然想到:为什么不让事情变得尽可能简单(因为我自己在计算机方面非常简单)而只是在批处理文件代码中用“#”代替“é”。< / p>

猜猜是什么?它奏效了!

答案 6 :(得分:0)

您可以使用Visual Studio Code,它可以让您选择要使用的编码。在右下角,选择编码,然后显示选项“使用编码保存”。选择DOS,将保存带重音符号。