无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 3690|回复: 8
打印 上一主题 下一主题

请教shift命令

[复制链接]
跳转到指定楼层
1#
发表于 2011-3-15 10:09:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
批处理中的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 编辑 ]
2#
 楼主| 发表于 2011-3-15 14:46:19 | 只看该作者
自己总算找到规律了:shift /n ->去掉第n个参数,n+1向左偏移。
回复

使用道具 举报

3#
发表于 2011-3-20 10:15:52 | 只看该作者

回复 #2 2011win 的帖子

不知道LZ是如何测试的,我测试的结果如下 :

回复

使用道具 举报

4#
 楼主| 发表于 2011-3-20 14:16:38 | 只看该作者
原帖由 tm7801 于 2011-3-20 10:15 发表
不知道LZ是如何测试的,我测试的结果如下 :

115885

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

使用道具 举报

5#
发表于 2011-3-26 21:07:55 | 只看该作者
原帖由 2011win 于 2011-3-20 14:16 发表

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


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

使用道具 举报

6#
 楼主| 发表于 2011-3-27 11:03:49 | 只看该作者
原帖由 tm7801 于 2011-3-26 21:07 发表


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

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


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

[ 本帖最后由 2011win 于 2011-3-27 11:07 编辑 ]
回复

使用道具 举报

7#
发表于 2011-3-27 21:48:24 | 只看该作者
原帖由 2011win 于 2011-3-27 11:03 发表

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

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







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

[ 本帖最后由 tm7801 于 2011-3-27 21:50 编辑 ]
回复

使用道具 举报

8#
发表于 2011-3-27 21:54:34 | 只看该作者
总算弄明白了,到第五个时,后面没有变量参数了.所以就一样,LZ高明
但这个用法在说明里好像没有.LZ是如何知道的.呵呵

[ 本帖最后由 tm7801 于 2011-3-27 22:13 编辑 ]
回复

使用道具 举报

9#
发表于 2011-4-3 09:23:11 | 只看该作者
原帖由 tm7801 于 2011-3-27 21:54 发表
总算弄明白了,到第五个时,后面没有变量参数了.所以就一样,LZ高明
但这个用法在说明里好像没有.LZ是如何知道的.呵呵


查下帮助就知道嘛:

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

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-14 05:24

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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