找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 62834|回复: 22

shift 命令详解

[复制链接]
发表于 2007-11-11 01:14:51 | 显示全部楼层 |阅读模式
::
  1. @echo off&goto loop
  2. shift 命令详解
  3. shift 是将所有参数往前移动一位。
  4. shift /2 是从第2个参数开始将后面的参数全部往前移动一位,但不影响前面的参数位置(即:不影响1)
  5. shift /3 是从第3个参数开始将后面的参数全部往前移动一位,但不影响前面的参数位置(即:不影响1,2)
  6. 依次类推 …… ……
  7. :loop
  8. @echo off&echo\
  9. set num=
  10. set num=%num%
  11. echo 没移位的参数为 : 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20
  12. echo\&echo 参数 1234 始终没有变化,但后面的却在逐位变化,前移。
  13. echo\
  14. :: 作者:随风   @bbs.bathome.net   2007-11-10
  15. ::
  16. call :lis 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20
  17. color 0b
  18. echo\&echo 测试完毕,按任意键退出 ……
  19. echo\&pause>nul&exit
  20. :lis
  21. set /p=%num%<nul
  22. if "%5"=="" goto :eof
  23. shift /5
  24. set /p=移位后的参数为 : %1 %2 %3 %4 %5 %6 %7 %8 %9<nul
  25. set /p=     按任意键继续......<nul
  26. pause>nul
  27. goto lis
复制代码

[ 本帖最后由 随风 于 2007-12-14 14:53 编辑 ]

评分

参与人数 1PB +1 收起 理由
xxlxltrps + 1

查看全部评分

发表于 2007-12-14 11:30:16 | 显示全部楼层
是不错,以前很少用此命令,最近在编写一批处理程序时用到感觉此命令很好用
发表于 2007-12-17 20:57:29 | 显示全部楼层
反正我没用过
发表于 2008-2-23 17:04:49 | 显示全部楼层
不懂也看看
发表于 2008-2-24 10:26:31 | 显示全部楼层
里面有几个看不懂能不能给解释一下,loop  num     call   lis  color 0b    goto :eof       >unl 这些我都看不懂,不能帮忙解释一下啊谢谢了。
发表于 2008-8-2 23:50:17 | 显示全部楼层
基本看不懂,可能是太晚了想睡觉了
这个字符是什么意思呢?我一直都弄不明白!
发表于 2008-10-2 09:39:09 | 显示全部楼层
,应该是显示错误吧?
发表于 2008-10-13 11:19:02 | 显示全部楼层
 楼主帮忙解释下这个是什么意思吧!
发表于 2008-10-13 11:24:53 | 显示全部楼层

回复 8楼 的帖子

一个就是一个退格键backspace,作用就是删除前面一个字符
发表于 2008-10-13 11:31:50 | 显示全部楼层

回复 9楼 的帖子

确切地说,一个退格符是将光标往前移动一位,接着出现的字符会将原来的字符覆盖。
发表于 2008-10-13 14:02:00 | 显示全部楼层
9楼只是为了单纯回答8楼的问题,如果具体到在楼主代码中的作用,请参考10楼解答^_^
发表于 2008-10-26 18:49:32 | 显示全部楼层
怎么输入   谢谢
发表于 2008-10-27 13:23:26 | 显示全部楼层
刚刚接触,不太明白。。。
发表于 2008-10-30 00:55:17 | 显示全部楼层

闪烁效果

@echo off
setlocal enabledelayedexpansion
title 闪烁效果
:start
color 0e
set str=人生得意须尽欢
for /l %%i in (0 1 6) do (
    set /p=!str:~%%i,1!<nul
    rem 依次取出变量str中的每一个字符,并显示
    ping -n 0 127.1>nul
    rem 设置每个输出字符的延迟时间
)
set /p a=<nul
rem 输出一些退格符使光标置于该行最左端
set /p a=                  <nul
rem 输出空格将之前文字覆盖
set /p a=<nul
rem 再次输出退格符使光标位于最左端(数量要多余之前的空格数)
goto start
发表于 2008-12-3 02:14:16 | 显示全部楼层
先学习下,有问题再问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 20:03 , Processed in 0.018710 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表