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

回复 10楼 的帖子

youxi果真高人~
但在不开启变量延迟用!!闭合变量的情况下,%0%、%1%会被误解析吧。
  1. @echo Off & Setlocal EnableDelayedExpansion
  2. Set "0=Even" & Set "1=Odd"
  3. Set /a Num=%Random%, n=Num %% 2
  4. Echo %Num% !%n%!
  5. Pause
复制代码
Num%%2等同于 Num "&" 1,所以用位运算也可以解答此题。
但wxcute兄的要求是让明白取余运算。只须知道“按位相与”在一定程度上比“取余”要快就好了~
心绪平和,眼藏静谧。

TOP

可否换种思路:0不能用作除数,否则errorlevel值是个非0的数字。
而||判别前面命令是否成功的标准就是通过判断第一条命令返回的errorlevel是否为0,不为0则是失败,即执行后面的命令。

  1. 2>nul set/a1/(%random%%%2)&&echo 奇数||echo 偶数
  2. pause
复制代码


嘿嘿
1

评分人数

TOP

受教了....这两天就在这看代码来着.

TOP

除了楼上的方法,还可以直接定义啊,完全避开条件检测。
方法如下:
set 0="偶数"
set 1="奇数"
后面的略...

TOP

回复 8楼 的帖子

代码有明显的错误。
%random%是动态变量,它是实时变化的。
set /p var=你取的....这句表示运行到此处暂停,等待用户输入,并把用户输入的值赋予变量var
if %str2% equ o 这里错了,再怎么说也不能是个字母。
楼上每个答案几乎都是用if来判断,可否换种思路:0不能用作除数,否则errorlevel值是个非0的数字。
而||判别前面命令是否成功的标准就是通过判断第一条命令返回的errorlevel是否为0,不为0则是失败,即执行后面的命令。

[ 本帖最后由 pusofalse 于 2008-12-1 22:17 编辑 ]
心绪平和,眼藏静谧。

TOP

  1. @echo off
  2. set /p var=你取的随机数是:%random%
  3. set /a str2=%random%%%2
  4. if %str2% equ o (echo.它是个偶数) else (echo.它是个奇数)
  5. pause>nul
复制代码
set /p var=你取的随机数是:%random%在这一句会停一下不知道是嘛意思..!

TOP

0当然是偶数

TOP

原帖由 Batcher 于 2008-12-1 19:46 发表
0是奇数还是偶数呢?
google了一下,没有找到什么结论。


貌似不纳入考虑范围.

说错别骂我啊 ^_^
for /f "delims=" %%a in ('%0') do (echo %%a)

TOP

0是奇数还是偶数呢?
google了一下,没有找到什么结论。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. @echo off
  2. set /a str=%random%,str2=str*5
  3. if %str2:~-1%==0 (echo %str% 是偶数) else (echo %str% 是奇数)
  4. pause
复制代码
一不小心看到了 2 楼的代码... str2=str*5 这个没有用过,学习了。
1

评分人数

TOP

  1. @echo off
  2. set/a str=%random%,str2=str%%2
  3. if %str2% equ 0 (echo. %str% 是偶数) else (echo. %str%是奇数)
  4. pause>nul
复制代码
1

评分人数

for /f "delims=" %%a in ('%0') do (echo %%a)

TOP

返回列表