标题: 显示和导出的奇怪问题~~(已结)
[打印本页]
作者: jastyg
时间: 2006-6-3 09:19
标题: 显示和导出的奇怪问题~~(已结)
@echo off
echo 你好 (此时能正常显示)
.
.
.
.
echo echo 大家好 >1.txt
echo echo 我们都很好>>1.txt
echo pause >nul >>1.txt (此处一个问题我加了>NUL,但在1.txt里确没有)
echo 文件导出成功! (此时显示的居然是乱码~~)
问题比较奇怪,偶想死了也想不通,省略的过程中主要用到set,if,goto命令其他的都没什么.
自己机使用环境WIN2K3。
另外有什么方法使直接运行的BAT文件,运行于后台?
谢谢各位给予指导!
[
Last edited by jastyg on 2006-6-5 at 08:51 ]
作者: Scott0902
时间: 2006-6-3 14:06
echo pause >nul >>1.txt 改为
echo pause ^>nul >>1.txt
作者: jastyg
时间: 2006-6-3 15:24
谢谢
作者: willsort
时间: 2006-6-3 18:07
Re Scott0902:
这个问题与 jastyg 兄在另一个主题[1]中提到的代码页被切换有关。也就是说,中间省略的语句并非仅仅是et,if,goto等“没有什么”的语句,还包括一些touch/wait等16位DOS程序,而16位DOS程序在CMD中运行会激活NTVDM,而NTVDM会切换代码页为默认的437英文,导致汉字无法正常显示。
解决办法,彼主题也已提到[2]。另外,但凡是乱码问题,通常都与代码页和当前字符集有关。
当然, ^>nul 仍然是必要的。
[1] 关于touch的乱码问题
http://www.cn-dos.net/forum/viewthread.php?tid=20994
[2] [原创]Win2000/XP中的命令行[06-05-22]
http://www.cn-dos.net/forum/viewthread.php?tid=20682
[
Last edited by willsort on 2006-6-3 at 18:10 ]
作者: jastyg
时间: 2006-6-5 08:50
谢谢,热心的斑竹~~