Board logo

标题: [其他] 批处理为什么无法echo输出数字1到文本 [打印本页]

作者: saint_Zuo    时间: 2011-12-16 14:05     标题: 批处理为什么无法echo输出数字1到文本

本帖最后由 pcl_test 于 2016-11-16 01:46 编辑

问题1:在dos中输入echo 1>D:\aa.txt后回车。打开aa.txt看不到1,只有“echo 处于打开状态”。试验了只要echo后面跟0-9之间的整数输出到一个文本文件都不成功,必须要加转意符^,请教为什么?
问题2:还有为什么在dos中直接输命令时有些变量只要加一个百分号,如%i,而在.bat中编辑时要写两个呢?,如%%i。
作者: saint_Zuo    时间: 2011-12-16 14:10

麻烦看看!
作者: bingxing8000    时间: 2011-12-16 14:16

善用搜索。
问题1:搜索 句柄
问题2:问百度
作者: jellyhk    时间: 2011-12-16 16:14

%的转义字符不是^是%
作者: wc726842270    时间: 2011-12-16 17:42

问题        解决地址
1           http://www.bathome.net/viewthrea ... hlight=%BE%E4%B1%FA
2           http://www.bathome.net/viewthrea ... highlight=%2B%B5%C4
作者: szjwxn    时间: 2011-12-16 20:53

本帖最后由 szjwxn 于 2011-12-16 20:56 编辑

问题1.这样就可以了,在1后面空一个空格
  1. @echo off
  2. echo 1 >1.txt
复制代码
问题2.
这个是批处理这样规定的,就是一种规范,必须这样写。
作者: bluewing009    时间: 2011-12-16 22:40

楼上正解……
作者: yyykkkyyyy    时间: 2011-12-16 23:13

对6楼方法插句嘴,问题1 它是在空格加单个数字结尾时会发生这种情况,如果不介意写入到文本中那1后多了个空格,在>前加个空格是可以的,楼主用加转义符^倒是个严谨的方法,但有时并不方便给这最后一个字符加 ^ 可以改成这两种方法:
  1. >1.txt echo 1
复制代码
  1. (echo 1)>1.txt
复制代码
而问题2当然可以认为是一种规定,但实际上要提高批处理水平,需要理解处理过程,应该解释为在批处理中比命令行多了一次预处理过程,应该看看有关教程




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2