bat文件无法运行,急急急!!!悬赏100分求救!!!

来源:百度知道 编辑:UC知道 时间:2024/06/28 01:31:25
我的bat文件,出现了一个超奇怪的现象
我首先是运行了下面的批处理
@echo off
set/p a=<ttt.txt
for /f "tokens=1 delims=省" %%i in ("%a%") do echo %%i省
pause

ttt.txt的内容只有一行 湖南省长沙市

运行以后就会提示以下内容
(注:??代表两个汉字,我不会写,一个是"铁字"把右边的"失"换成"若"字,另一个是"纹"字把右边的"文"字换成"致"字)

??echo off
'??echo' 不是内部或外部命令,也不是可运行的程序
我再点右键-点编辑,居然发现
"for /f "tokens=1 delims=省" %%i in ("%a%") do echo %%i省"这一行里的两个"省"字变成了两个小黑方块,

然后我删除这个bat里的所有内容,再输入
@echo off
echo aaaaaa
pause
它也会出现上面的提示,
但和它在同一目录下的bat文件却没问题,于是我将那个能运行的bat文件内容复制到这个bat里来,一运行还是不行,并且显示的汉字全变成了一些奇怪的文字,

实在搞不懂了,杀毒也没用,恢复系统也还是一样,谁能帮帮我.......谢谢!!!谢谢!!!谢谢了!!!!!!!!!
回答重装电脑的请出去,重装还用你说啊.

其实问题很简单,是关于字符编码的问题.
相关欢迎先参考
http://zhidao.baidu.com/question/28213910.html
.
看过,请创建一个文本 输入 省 字,保存再打开,查看是否变成黑的小方框,还可以使用文件-另存为方式,查看"编码"
是否改变成非 "ANSI" 编码.(UTF-8)

但为什么在你的批处理文件运行后会出现这个问题?
你的批处理文件中,
"
@echo off
set/p a=<ttt.txt
for /f "tokens=1 delims=省" %%i in ("%a%") do echo %%i省
pause
"
代码本身没有问题,而问题就出现在 "省"这个特殊的字(详见以上连接.),将以上代码保存进批处理文件后,批处理文件自身识别了错误的字符编码,所以才导致文件编码格式改变,进入CMD环境执行批处理文件无法正确辨认某些字符. (因为批处理文件的编辑十分简单,即一个文本.而文本的默认编码格式其实也就是 "ANSI"),换言而之,如果没有类似于"省"这个特殊的字或词,那么也就不会出现以上的问题.

其实写这个 批处理文件 等同于将 这个批处理文件的内容 直接写入默认编码格式的文本,而后打开的动作.

重装电脑 一定可以

在DOS下运行,应该可以

在DOS下运行