中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 显示和导出的奇怪问题~~(已结)
作者:
标题: 显示和导出的奇怪问题~~(已结) 上一主题 | 下一主题
jastyg
中级用户





积分 219
发帖 82
注册 2005-10-29
状态 离线
『楼 主』:  显示和导出的奇怪问题~~(已结)

@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 ]

2006-6-3 09:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Scott0902
中级用户





积分 466
发帖 237
注册 2005-10-12
状态 离线
『第 2 楼』:  

echo pause >nul >>1.txt     改为
echo pause ^>nul >>1.txt

2006-6-3 14:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jastyg
中级用户





积分 219
发帖 82
注册 2005-10-29
状态 离线
『第 3 楼』:  

谢谢

2006-6-3 15:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 4 楼』:  

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 ]



※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2006-6-3 18:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jastyg
中级用户





积分 219
发帖 82
注册 2005-10-29
状态 离线
『第 5 楼』:  

谢谢,热心的斑竹~~

2006-6-5 08:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: