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


下划线不应该省略因为 a=12 ,b=空的情况 或者 a=空 b=12

TOP

12# inittab
==和equ有却别吗?——我测试是一丁点区别也没有,当然写起来有区别就是了。

TOP

1.
  1. @echo off
  2. Set /p "a=请输入:"
  3. If  %a:s=%==%a% (Echo %a%不含有s) Else (Echo %a%含s)
  4. pause
复制代码
2.
  1. @echo off
  2. Set /p "a=请输入:"
  3. Set /p "b=请输入:"
  4. If "%a%%b%"=="12" (Echo Yes) Else (Echo No)
  5. ::连下划线都可以省略的
  6. pause
复制代码

TOP

回复 34楼 的帖子

所以说嘛,无论batman管理员前辈的那个批处理中a是1点几,结果a变量存储的还是1啊,所以似乎是不太符合前辈您的题目要求啊,当然,我说过了,如果楼主前辈的意思就是判断数值上(取整之后)的等于,那batman管理员前辈就对了,但是楼主前辈又不对了。

TOP

回复 32楼 的帖子

你真有耐心啊,说1是1说2是2.
如果是1.0 的话 set 也会出错吧?  批处理不支持小数啊。

TOP

原帖由 batman 于 2009-10-29 21:29 发表
也是比较另类的,不用if:
set /a num=3/(a-1) >nul 2>nul||set /a num=3/(b-2) >nul 2>nul||echo a等于1,b等于2

给batman管理员前辈挑点小问题,前辈您从数学的角度考虑该题感觉有点跑题(当然思路是相当发人深省的绝妙的并且值得赞叹的),晚辈举一反例加以论证,如果a=1.0可兼或b=1.0等情况,亦即两者在数值上等于1,那么您这代码也会回显"a等于1,b等于2"这句话,如果楼主前辈的意思就是判断数值上的等于,那么您的答案就恰到好处了,但是这样一来,楼主前辈的答案就错了(因为楼主前辈的答案判断的是右值相等而非数值相等),总之,您两位前辈总有一位是不符合题意的,归根结底是楼主的题目表述不清含有二义性所致,当然了,晚辈没有什么人身攻击的意思,相反晚辈还相当敬仰两位前辈的超凡的智慧与过人的才能呢,所以,如有语言过激之处,还请两位前辈定当多多包涵才是。。。

[ 本帖最后由 fish 于 2010-8-8 00:32 编辑 ]

TOP

A1:
  1. @echo off
  2. set /p s=请随便输入一个字符串
  3. set s_=%s:s=%
  4. if “%s%”==“%s_%” (echo 里面没有s哦) else echo 里面有s哦
  5. pause
复制代码

A2
  1. @echo off
  2. set /p a=请随便输入一个字符串
  3. set /p b=请再随便输入一个字符串
  4. if "%a:a=%"=="" if "%b:b=%"=="' (echo 符合要求) else echo 不符合要求
  5. pause
复制代码

=========
end;

[ 本帖最后由 poxi 于 2010-7-19 19:40 编辑 ]

TOP

试了很久也没有成功因此请求高手!

TOP

题目看错了,b=2,晕哈

TOP

第一条题目,我想先用for逐个提取字符串里面的字符,然后用IF语句来判断下,但是貌似字符串要分开写,方法太笨拙!
没能力写,看看高手的答案

第2个题目简单,我新手,简单写个
@echo off
set /p a=请输入:
set /p b=请输入:
if "%a%"=="1" (goto zhe) else echo 变量a不等于1
:zhe
if "%b%"=="1" (echo a=1且b=1) else echo 变量b不等于1
pause>nul

TOP

呵呵。不潜水了,看看答案先。

TOP

继续答题额~~~~~~~~

  1. @echo off
  2. set /p a=请输入a的值
  3. set /p b=请输入b的值
  4. if "%a%"=="1" (if "%b%"=="2" (echo right) else echo wrong) else echo wrong   
  5. pause >nul
复制代码

TOP

本人新手只会用这种方法了额 ~~~

  1. @echo off
  2. set /p a=请输入
  3. echo %a%|find "s" >nul
  4. if "%errorlevel%"=="0" (echo 含有s) else echo 不含s
  5. pause >nul
复制代码
没有各位大虾的简洁额   - -b

TOP

  1. @echo off &setlocal enabledelayedexpansion
  2. set /p str=Please input random string:&set a=&set /a var=0&set /a num=0
  3. :loop
  4. for %%i in (%str%) do (
  5.     call set a=%%str:~!var!,1%%
  6.     set /a err=!errorlevel!
  7.     set /a var+=1
  8.     if "!a!"=="s" set /a num+=1
  9.     if !err! equ 0 goto :loop )
  10. if %num% neq 0 ( echo contain s!) else ( echo not contain )
  11. pause>nul
复制代码

1.2   同时判断两个数字变量a 和 b  是否 a=1 且 b=2
  1. @echo off&cls
  2. set /p a=please input a number
  3. set /p b=please input a number
  4. if "12"=="%a%%b%" (echo  a 和 b  是 a=1 且 b=2) else (echo a 和 b  不是 a=1 且 b=2)
  5. pause
复制代码

[ 本帖最后由 zgq0301 于 2009-11-13 21:35 编辑 ]

TOP

  1. rem 问题1.1
  2. @echo off&cls
  3. set /p str=请输入字符:
  4. echo.%str% | find "s"
  5. if %errorlevel%==0 (echo 字符串中有s) else (echo 字符串中没有s)
  6. pause
  7. rem 问题1.2
  8. set /p a=请输入数字a:
  9. set /p b=请输入数字b:
  10. if %a% equ 1 (
  11.    if %b% equ 2 (
  12.       echo 你输入的数字a=1,而且b=2) else (echo 你输入的数字a=1,但b不等于2)
  13. ) else (
  14.   if %b% equ 2 (
  15.       echo 你输入的数字a不等1,但b=2) else (echo 你输入的数字a不等于1,且b不等于2)
  16. )
  17. pause
复制代码

TOP

返回列表