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

批处理IF命令的两个小练习

下面的题目不难,方法有多种~ 看能不能一次性写出较精简的哦~


习题1.1   判断一个字符串里面是否含有 s 这个字符
       1.2   同时判断两个数字变量a 和 b  是否 a=1 且 b=2

写出判断的句子即可。

[ 本帖最后由 523066680 于 2009-7-27 22:03 编辑 ]
1

评分人数

回复收到,3Q~ 49# Batcher

TOP

@echo off
set /p var=请输入需要判断的字符串:
if "%var%"=="%var:s=%" (
        echo 字符串不包含s
) else (
        echo 字符串包含s
)
pause>Nul 2>nul

TOP

回复 48# 唯尘


if命令的建议:

  • 字符串比较的时候,等号左右两边的变量都加上双引号。
  • 数值比较的时候,等号(或大于、小于)左右两边的变量不加双引号。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

@echo off
set /p str=请输入需要判断的字符串:
if %str%==%str:s=% (echo 字符串不存在s字符) else (echo 字符串存在s字符)
pause>nul


@echo off
set /p a=请输入第一个判断值:
set /p b=请输入第二个判断值:
if %a%==1 (if %b%==2 (echo ok) else (echo bad)) else (echo bad)
pause>nul

TOP

@echo off
set /p str=请输入需要判断的字符串:
set str1=%str:s=%
if /i %str1%==%str% (echo 不存在s) else (echo 存在s)
pause>nul

@echo off
set /p a=请输入第一个判断词:
set /p b=请输入第二个判断词:
if %a%==1 (if %b%==2 (echo a=1 并且 b=2) else (echo a,b条件不同时成立)) else (echo 条件不成立)
pause>nul

TOP

@echo off
set /p a=请输入第一个判断数字:
set /p b=请输入第二个判断数字:
set a=%a:"=%&set b=%b:"=%
if "%a%"=="1" (if "%b%
"=="2" (echo OK) else (echo Bad)) else (echo Bad)
pause>nul 2>nul

TOP

@echo off
setlocal enabledelayedexpansion
set /p str=请输入需要判断字符串:
:loop
set /a n+=1
set var=!str:~%n%,1!
echo %var%
if "!var!"=="s" (echo 存在字符s & goto :eof) else (
        if "!var!"=="" (@goto a) else (goto loop)
)
:a
echo 不存在字符s
pause>nul&exit

TOP

@ECHO OFF
IF ERRORLEVEL 1 GOTO 1
IF ERRORLEVEL A GOTO A
:A
ECHO 命令
GOTO EXIT
………同上
PAUSE

TOP

这种题不应该叫IF命令的练习题,因为练习的核心还是思路和SET命令!~
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

啊啊啊啊啊啊啊,我来晚了啊

TOP

本帖最后由 xhhivi 于 2012-5-4 22:00 编辑

40楼的"%var:s=%"是什么意思啊?没看懂
网上找了一圈估计是这个意思:%VAR:str1=str2%   会将VAR中的str1替换为str2(str2如果为空则可以达到删除的效果
做个记号

TOP

回复 8# 523066680


    搜到关于“下划线”的回复看到这个帖子的,长见识了,思路确实很重要!第一题的思路超简洁啊!第二题的甄别符加得真好!学习了

TOP

这样可不可以。
  1. if "%var%"=="%var:s=%" (echo this string contains  "s") else (echo the string doesn't contain "s")
复制代码
  1. if not %a% equ 1 (goto :eof) else if not %b% equ 1 (goto :eof) else (echo a=1,b=1)
复制代码

TOP

第二题来个新思路
  1. echo off
  2. set /p a=
  3. set /p b=
  4. set/a b/=a*=-1
  5. if "%a%%b%"=="-1-2" (echo yes) else (echo no)
  6. pause
复制代码
世界上没有学不会的知识,也没有想得到却做不到的事!

TOP

返回列表