Board logo

标题: [文本处理] [已解决]批处理提示找不到操作数 [打印本页]

作者: wkdxz    时间: 2009-8-5 17:27     标题: [已解决]批处理提示找不到操作数

文件用来批量建立空文本
  1. @echo off
  2. echo\&echo/
  3. @set /p x=   请输入你要新建空文本的个数:
  4. set /a y=%x%+1
  5. :1
  6. set /a a=1
  7. set /a a=%b%
  8. set /a b=%a%+1
  9. @cd.>%b%.txt
  10. @if exist %y%.txt (
  11. exit
  12. ) else (
  13. goto 1)
复制代码
今天没事编了个批处理,但文件数目输入后会提示“找不到操作数”,请高手帮忙解决下这问题。

[ 本帖最后由 wkdxz 于 2009-8-6 09:34 编辑 ]
作者: batman    时间: 2009-8-5 17:38

&&就“找不到操作数”这个提示而言,问题是出在set /a a=%b%这句上,因为%b%在事
先并没有被定义,所以set /a会提示找不到操作数。但楼主的问题显然不只这一个,在此也
就不一一评述了,直接修改代码如下:
  1. @echo off
  2. set /p num=请输入要创建的空文本个数:
  3. for /l %%a in (1,1,%num%) do cd.>%%a.txt
复制代码

作者: BBCC    时间: 2009-8-5 17:52

/A 命令行开关指定等号右边的字符串为被评估的数字表达式。

而楼主的set /a a=%b%,因为变量b在之前没有被初始化,因而值是null(空),所以不是合法的数字表达式,因而发生错误。

给个小建议,下次在调试代码的时候,可以先echo on,当发现代码错误的时候,可以查看是哪条命令执行出错,之后可以对相关命令 /?查看系统帮助(虽然中文的帮助比较蹩脚),改正代码,这样有助于提高效率以及加快学习进度。

祝楼主学习愉快,别忘了要加上已解决的符号哦。

//
插个话,为什么batman回帖开头总有两个&&
作者: wkdxz    时间: 2009-8-6 09:31

谢谢2楼的高质量答案和3楼的指教。看来得好好学学FOR命令了。短小,强大!~
我得再给命令加一个开关,要不生成文件存在,就不能再生成了。

[ 本帖最后由 wkdxz 于 2009-8-6 09:34 编辑 ]




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