楼 主
[求助]请问shift这个批处理命令的用法?
发表于 2004-11-08 00:00 · 中国 广西 桂林 电信
初级用户
★
积分 168 发帖 27 注册 2004-11-03 00:00 21年会员 UID 33247 性别 男
状态 离线
我实在弄不懂shift这个命令的用法??
哪位达人能教我这个shift命令是怎么样用的吗??
最后能附带一个实例.谢谢!
第 2 楼
发表于 2004-11-09 00:00 · 中国 福建 厦门 电信
系统支持
★★★
积分 904 发帖 339 注册 2002-10-10 00:00 23年会员 UID 1904 来自 厦门
状态 离线
Changes the position of replaceable parameters in a batch file.SHIFT If Command Extensions are enabled the SHIFT command supports
the /n switch which tells the command to start shifting at the
nth argument, where n may be between zero and eight. For example: SHIFT /2would shift %3 to %2, %4 to %3, etc. and leave %0 and %1 unaffected.
第 3 楼
发表于 2004-11-10 00:00 · 中国 河北 石家庄 联通
铂金会员
★★★★
网络独行侠
积分 6,962 发帖 2,753 注册 2003-04-16 00:00 23年会员 UID 1565 性别 男 来自 河北保定
状态 离线
在DOS的批处理中,只支持%1 - %9这9个命令行参数(%0用来表示命令本身),如果你想让你的批处理支持超过9个的命令行参数,就需要用到shift命令,每运行shift命令一次,命令行参数就左移一位,即%2变成%1,%3变成%2,...,依次类推。一个简单的例子,你建立一个批处理,假设名为tstshift.bat,内容如下:
@echo off
echo %0
echo %1 %2 %3 %4 %5 %6 %7 %8 %9
echo %1
::1
shift
echo %1
::2
shift
echo %1
::3
shift
echo %1
::4
shift
echo %1
::5
shift
echo %1
::6
shift
echo %1
::7
shift
echo %1
::8
shift
echo %1
::9
shift
echo %1
::10
shift
echo %1
然后运行:
tstshift 0 1 2 3 4 5 6 7 8 9 a运行结果如下:
D:\>tstshift 0 1 2 3 4 5 6 7 8 9 a
tstshift
0 1 2 3 4 5 6 7 8
0
1
2
3
4
5
6
7
8
9
a上面是所有的shift命令都支持的功能,而2000/xp/2003下的shift功能又新增了一个/n参数,用来指定从第n个参数开始移位。2000/xp/2003下的shift命令的中文帮助为:
D:\>shift /?
更改批处理文件中可替换参数的位置。SHIFT 如果命令扩展被启用,SHIFT 命令支持/n 命令行开关;该命令行开关告诉
命令从第 n 个参数开始移位;n 介于零和八之间。例如: SHIFT /2会将 %3 移位到 %2,将 %4 移位到 %3,等等;并且不影响 %0 和 %1。
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“
这个帖子 ”和“
这个帖子 ”并努力遵守,如果可能,请告诉更多的人!
第 4 楼
发表于 2004-11-12 00:00 · 中国 广西 柳州 电信
初级用户
★
积分 168 发帖 27 注册 2004-11-03 00:00 21年会员 UID 33247 性别 男
状态 离线
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正