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

批处理一问一答,问为重

 n层:我问一个问题                    //当然问题要清楚,不要改来改去
n+1层:这层回答问题,并提出一个新问题
           //最好提出新问题
n+2层:如果上一层没有提出新问题,则这层必须提出一新问题  //可回答n层的问题,也可只提新问题


先来个:

列出100以内的素数

质数(又称为素数)


在所有比1大的整数中,除了1和它本身以外,不再有别的约数,这种整数叫做质数。
1

评分人数

re36的兄弟

由于一些原因,题目改变,请把关键词 换成XX.XXX 适当.

不要关键字 把所有视频>a.txt 也很直观的说~

[ 本帖最后由 a590687 于 2010-1-13 09:18 编辑 ]

TOP

re 35
  1. @echo off
  2. echo 搜索全盘需要时间……
  3. for /f "skip=1" %%i in ('wmic logicaldisk where "drivetype=3" get caption') do (
  4.   dir /b/s/a "%%i\*.rmvb";"%%i\*.avi";"%%i\*.mp4" | findstr /i "一 东 妹 同 户 护 漂"
  5. )
  6. pause
复制代码
出题,对找到的片进行简单加密处理,方法自选。
需要时运行P输入密码解密

汗。关键词。

[ 本帖最后由 yangfengoo 于 2010-1-13 14:05 编辑 ]
1

评分人数

    • a590687: 不错 代码很有效率PB + 4

TOP

回31楼

  1. @echo off
  2. :lp
  3. set /a "a=%random% %%100"
  4. set /a "b=%a:~,1%+1"
  5. set /a "c=%a:~1,1%+1"
  6. set/p=随机数%a%在%b%行,%c%列.
  7. echo.
  8. goto lp
复制代码
我出一题:
搜索电脑里的视频文件
要求是 遍历全盘搜索rmvb;avi;mp4为后缀名的视频文件.包括隐藏文件.
搜索关键字"XX.XXX可以自行增加.

[ 本帖最后由 a590687 于 2010-1-13 09:14 编辑 ]

TOP

回复 4楼 的帖子

不知对不对?
@echo off
:sen
set /a k+=5,n=2*k
if %n% lss 100 (echo %n%&goto sen) else (pause>nul)

TOP

RE 11题

按32楼的方法,把判断和显示合并为一行就可以实现了:

if %%i equ %n% set /a i=s,h=%%a&echo %N% 在第 !h! 行, 第 !i! 列

TOP

答第十题
若没有重复数字可以这样
:
  1. @echo off&setlocal enabledelayedexpansion
  2. set /a n=!random!%%100,s=0
  3. for /f "tokens=1* delims=:" %%a in ('findstr /n "\<%n%\>" b.txt') do (
  4.    echo %%b
  5.    for %%i in (%%b) do (
  6.       set /a s+=1
  7.   if %%i equ %n% set /a i=s,h=%%a
  8. )
  9. )
  10. echo %N% 在第 %h% 行, 第 %i% 列
  11. pause
复制代码
.
第十一题:
扩展31楼第十题的要求,即:a.txt中有重复的数字出现
要求同上,但必须把重复的也显示出来
比如:  25分别在第3行第2列 和 第8行第7列
.
结果显示
25 在第3行第2列
25 在第8行第7列


.
技术问题请到论坛发帖求助!

TOP

我也出个题目:

第十题:假设有数列有规律排列如下:
列数    1   2   3   4   5   6    7   8   9  10   行数
        0   1   2   3   4    5    6   7   8   9    1行
       10 11 12 13 14 15 16 17 18 19   2行
       ………………………………
       80 81 82 83 84 85 86 87 88 89   9行
       90 91 92 93 94 95 96 97 98 99   10行

程序:随即产生一个(0~99)的数,判断它的行数跟列数。

TOP

排列组合的问题:
  1. @echo off&setlocal enabledelayedexpansion
  2. set "var=a b c"
  3. for %%a in (%var%) do (
  4.       set "var1=!var:%%a=!"
  5.       for %%b in (!var1!) do (
  6.             set "var2=!var1:%%b=!"
  7.             for %%c in (!var2!) do (
  8.                   echo %%a %%b %%c
  9. )))
  10. pause
复制代码
关于求组合,这是最经常用到的方法,但不通用。
但细心则能发现其中的规律。
每行基本上都是一样的,变化的只有字符串常量%%b %%c %%d ....与!var1! !var2! !var3!...知道了这个规律,能否写出一个通用的呢~
以上,BATMAN版主的思路。
心绪平和,眼藏静谧。

TOP

难的题目能不能发?讨论下排列组合问题吧

可能会比较难点,应该换个题目开个新帖子了。
4个数中取3个数的组合

排列可能更难

TOP

楼上兄弟的解简直就和我的一模一样,一样是用的分位随机,一样是用的退格,呵呵。

[ 本帖最后由 batman 于 2008-9-24 08:00 编辑 ]
***共同提高***

TOP

  1. @echo off
  2. set /a h=%random%%%9+1,l=%random%%%9+1
  3. for /l %%i in (1 1 %h%) do (
  4.    for /l %%j in (1 1 %l%) do set /p=%h%%l%^><NUL
  5.     set /p= <NUL&ECHO.
  6. )
  7. pause>nul
复制代码
2

评分人数

TOP

第八题:
  随机产生一个各位数不为0的两位数如56,并将十位数字做为行数,将个位数字做为列
数,则在屏幕上输出5行以>为分隔符6列且每列均为原随机数的字符,示例如下:
  1. 56>56>56>56>56>56    1行
  2. 56>56>56>56>56>56    2行
  3. ............. 
  4. 56>56>56>56>56>56    5行
复制代码

[ 本帖最后由 batman 于 2008-9-23 08:16 编辑 ]
***共同提高***

TOP

以本人所见上面所有关于七题的解都不是精确的(可能说得有点大),本人的解如下:
  1. @echo off
  2. set "str=%random%"
  3. echo 产生的随机数为%str%
  4. :lp
  5. set /a num+=%str:~,1%&set "str=%str:~1%"
  6. if defined str goto lp
  7. echo 其各位上的数相加的和为%num%&pause>nul
复制代码

[ 本帖最后由 batman 于 2008-9-22 20:13 编辑 ]
***共同提高***

TOP

前面写的第五题的解还是感觉存在效率上的问题,特给出本人的解如下:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%i in (0,1,100) do set "_!random!!random!!random!=%%i"
  3. for /f "tokens=2 delims==" %%i in ('set _') do (
  4.      set /a n+=1
  5.      if !n! neq 91 (
  6.         echo %%i
  7.         ) else (
  8.        pause>nul&goto :eof
  9.     )
  10. )
复制代码
1

评分人数

    • sjzong: batman兄的代码,用“_!random!!random!!ra ...PB + 5
***共同提高***

TOP

返回列表