[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] 请问我的 if 语句 错在那里的?

下面有两个代码:不同的只有if  的else最后 那里
为什么运行结果不同的?
  1. @echo off
  2. if "%n%"==1"" (set k1=%a:~6%&&goto eof) else (set b=%k% /s)
  3. set /p k1=b:
  4. if "%k1%"=="e" (goto eof) else (echo hasn't error)
  5. pause
复制代码
  1. @echo off
  2. if "%n%"==1"" (set k1=%a:~6%&&goto eof) else (set "b=%k% /s")
  3. set /p k1=b:
  4. if "%k1%"=="e" (goto eof) else (echo hasn't error)
  5. pause
复制代码

我想知道
两个运行结果为什么不同的?

TOP

回复 3楼 的帖子

你把1放到双引号外面是为了达到什么效果?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

因为我觉得 P处理 没有定死了的的输入方式,如 fi "str1"=="str2"  中的""不一定要输入“”~
有简化就容易误会:道理如:“下雨天留客天天留我不留”有N种读法:
下雨,天留客,天天留,我不留(天天下雨,我已经不想留)
下雨天,留客天,天留我?不留!(下雨与天留人无关)
下雨天,留客天,天留,我不留!(主人不让留)
……
那if 判断机制会不会出错呢?~~
这几天刚了解P处时~ 没有找到系统的教材。就决定自己找IF的判断机制是怎样的~
所以发现 if "%n%"==1""   的输入方法“好象”很有问题。
写出来的P处理真的“好象”有几种判断
如后面的 1""   所以想测试"%n%"  是判断为带"的"%n%",还是只有%n%
set n=1
发现 "%n%"==1""   等号两边有时会成立似的  即 if "%n%"==1""   变为  if  %n%"==1""      
有时侯又报错~
还发现if 有时候 会在CMD  把  if "%n%"==1""   变为  if "%n%"==""      
还……
不知道是怎么搞的~~
刚学!  看 /? 头好晕
只是看过  /?  
有时间再看看大家的文章~
请大家指点指点
尤其第二段代码 , 怎么 什么都不显示就结束了呢?

[ 本帖最后由 siwmm 于 2009-6-18 12:48 编辑 ]

TOP

回复 5楼 的帖子

双引号不是随便加的,更不是为了好玩,它是为了防止变量或字符串里面含有特殊字符时可能带来的错误。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

原帖由 Batcher 于 2009-6-18 12:49 发表
……更不是为了好玩,……

请原谅“为了好玩”的我
“”加成这样子 P处理 是怎样判断的?
尤其那代码2 怎么在echo on 的情况下命令语句不显示就结束了?

TOP

回复 7楼 的帖子

那你接着玩吧,有兴趣可以试试这种玩法:
不要双击运行
把代码保存为C:\test.bat
把@echo off删除
开始
运行
cmd
C:\test.bat
看看执行过程再好好想想
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

呵呵,楼主这牛角钻的。
我很想知道n=?时能让
"%n%"==1""
成立

TOP

返回列表