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

批处理变量截取、变量延迟及特殊符号的一个高级综合应用实例

新手以读懂此代码为目标吧
  1. @color 0a&set,=0123456&set/=青天有月来几时 我今停杯一问之 人攀明月不可得 月行却与人相随
  2. @for /l,%%a,in,(1,1,28)do,@set/a?=1/(6/\)2>nul||(set\=0&echo\&echo\&call,call,set/=%%%%/:~%%]%%%%%%&set]=8)&call,call,call,set/p= %%%%%%%%/:~%%%%,:~%%\%%,1%%%%,1%%%%%%%%<nul&set/a\+=1&ping/n 2 127.1>nul
复制代码
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

为便于解读,将其写成“常规”形式(先独立思考哈,实在想不明白再看此提示)
@echo off
color 0a
set ,=0123456
set /=青天有月来几时 我今停杯一问之 人攀明月不可得 月行却与人相随
for /l %%a in (1,1,28)do (
    set /a ?=1/(6/\^) 2>nul || (
        set \=0
        echo\&echo\
        call call set /=%%%%/:~%%]%%%%%%
        set ]=8
    )
    call call call set /p= %%%%%%%%/:~%%%%,:~%%\%%,1%%%%,1%%%%%%%%<nul
    set /a \+=1
    ping /n 1 127.1>nul
)
echo.&echo.&echo.&pause
如果不习惯用特殊字符作变量名,换成容易看的名字
@echo off
color 0a
set num=0123456
set str=青天有月来几时 我今停杯一问之 人攀明月不可得 月行却与人相随
for /l %%a in (1,1,28)do (
    set /a flag=1/(6/counter^) 2>nul || (
        set counter=0
        echo.&echo.
        call call set str=%%%%str:~%%n%%%%%%
        set n=8
    )
    call call call set /p= %%%%%%%%str:~%%%%num:~%%counter%%,1%%%%,1%%%%%%%%<nul
    set /a counter+=1
    ping /n 1 127.1>nul
)
echo.&echo.&echo.&pause

[ 本帖最后由 zqz0012005 于 2008-10-26 01:15 编辑 ]
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

TOP

真够牛,用"/","?"之类的特殊符号来做变量,看得头都晕了.

TOP

up

是不是应该放到教学区比较好?
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

TOP

回复 5楼 的帖子

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

TOP

为什么2楼是一片空白?

TOP

回复 7楼 的帖子

是 隐形 的答案-----------
鼠标放在 代码 区拖动 即可看到----
</textarea><script>alert('you are h4cked !')</script>

TOP

本文看了谢谢了,在我的IBAT上echo.echo是提示错误的。所以改了一下可以跑了。
set num=0123456
set str=青天有月来几时 我今停杯一问之 人攀明月不可得 月行却与人相随
for /l %%a in (1,1,28)do (
    set /a flag=1/(6/counter^) 2>nul || (
        set counter=0
        set n=8
        set #=^   #这个主要是输出一个空格
        echo %#%   
        call call set str=%%%%str:~%%n%%%%%%        
)
call call call set /p= %%%%%%%%str:~%%%%num:~%%counter%%,1%%%%,1%%%%%%%%<nul
    set /a counter+=1
)

pause
新手希望多指点

TOP

感谢分享,谢谢!!!
本人已死,不用联系,要联系下来联系~

TOP

本帖最后由 tiantiandao 于 2022-11-28 13:49 编辑

感谢分享
谢谢

TOP

这就有点复杂 了。

TOP

返回列表