无忧启动论坛

标题: 请教shift命令 [打印本页]

作者: 2011win    时间: 2011-3-15 10:09
标题: 请教shift命令
批处理中的shift命令弄不明白,比如test.bat内容如下:
@echo off
cls
echo %1 %2 %3 %4 %5 %6 %7 %8 %9
shift /0
echo %1 %2 %3 %4 %5 %6 %7 %8 %9
shift /1
echo %1 %2 %3 %4 %5 %6 %7 %8 %9
shift /2
echo %1 %2 %3 %4 %5 %6 %7 %8 %9
shift /3
echo %1 %2 %3 %4 %5 %6 %7 %8 %9
shift /4
echo %1 %2 %3 %4 %5 %6 %7 %8 %9
shift /5
echo %1 %2 %3 %4 %5 %6 %7 %8 %9
shift /6
echo %1 %2 %3 %4 %5 %6 %7 %8 %9
shift /7
echo %1 %2 %3 %4 %5 %6 %7 %8 %9
shift /8
echo %1 %2 %3 %4 %5 %6 %7 %8 %9
pause 1>nul
执行test.bat 1 2 3 4 5 6 7 8 9
输出:
1 2 3 4 5 6 7 8 9
2 3 4 5 6 7 8 9
3 4 5 6 7 8 9
3 5 6 7 8 9
3 5 7 8 9
3 5 7 9
3 5 7 9
3 5 7 9
3 5 7 9
3 5 7 9
其中第四行是不是应该是输出4 5 6 7 8 9的?第三行以后的结果就弄不明白了?哪位朋友给讲一下,谢谢!

[ 本帖最后由 2011win 于 2011-3-15 14:46 编辑 ]
作者: 2011win    时间: 2011-3-15 14:46
自己总算找到规律了:shift /n ->去掉第n个参数,n+1向左偏移。
作者: tm7801    时间: 2011-3-20 10:15
标题: 回复 #2 2011win 的帖子
不知道LZ是如何测试的,我测试的结果如下 :


作者: 2011win    时间: 2011-3-20 14:16
原帖由 tm7801 于 2011-3-20 10:15 发表
不知道LZ是如何测试的,我测试的结果如下 :

115885

你根本就没按上面的要求测试,所以输出的内容不同,根据你上面的图片我知道你是怎么测试的。。。。
作者: tm7801    时间: 2011-3-26 21:07
原帖由 2011win 于 2011-3-20 14:16 发表

你根本就没按上面的要求测试,所以输出的内容不同,根据你上面的图片我知道你是怎么测试的。。。。


那你说我是如何测试的.../
作者: 2011win    时间: 2011-3-27 11:03
原帖由 tm7801 于 2011-3-26 21:07 发表


那你说我是如何测试的.../

按你的操作测试结果:
如图:


按照主贴中的测试方法,就明白shift的用法了。

[ 本帖最后由 2011win 于 2011-3-27 11:07 编辑 ]
作者: tm7801    时间: 2011-3-27 21:48
原帖由 2011win 于 2011-3-27 11:03 发表

按你的操作测试结果:
如图:

116483
按照主贴中的测试方法,就明白shift的用法了。







在SHIFT的说明中好像没有参数,为何还带有SHIFT /N参数呢?

[ 本帖最后由 tm7801 于 2011-3-27 21:50 编辑 ]
作者: tm7801    时间: 2011-3-27 21:54
总算弄明白了,到第五个时,后面没有变量参数了.所以就一样,LZ高明
但这个用法在说明里好像没有.LZ是如何知道的.呵呵

[ 本帖最后由 tm7801 于 2011-3-27 22:13 编辑 ]
作者: lafter    时间: 2011-4-3 09:23
原帖由 tm7801 于 2011-3-27 21:54 发表
总算弄明白了,到第五个时,后面没有变量参数了.所以就一样,LZ高明
但这个用法在说明里好像没有.LZ是如何知道的.呵呵


查下帮助就知道嘛:

更改批处理文件中可替换参数的位置。
SHIFT [/n]
如果命令扩展名被启用,SHIFT 命令支持/n 命令行开关;该命令行开关告诉
命令从第 n 个参数开始移位;n 介于零和八之间。例如:
    SHIFT /2
会将 %3 移位到 %2,将 %4 移位到 %3,等等;并且不影响 %0 和 %1。





欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3