中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] »
作者:
标题: 批处理命令-----Shift的用法! 上一主题 | 下一主题
zyz0304360
中级用户




积分 257
发帖 123
注册 2008-1-5
来自 烟台
状态 离线
『第 16 楼』:  

谢谢你们,我懂了



路 是自己选的
学习 是为了具备解决问题的能力
2008-2-11 14:54
查看资料  发短消息 网志  OICQ (625621812)  编辑帖子  回复  引用回复
zyz0304360
中级用户




积分 257
发帖 123
注册 2008-1-5
来自 烟台
状态 离线
『第 17 楼』:  

更改批处理文件中可替换参数的位置。

SHIFT [/n]

如果命令扩展名被启用,SHIFT 命令支持/n 命令行开关;该命令行开关
命令从第 n 个参数开始移位;n 介于零和八之间。例如:

SHIFT /2

会将 %3 移位到 %2,将 %4 移位到 %3,等等;并且不影响 %0 和 %1。

跟33楼的抛位差不多一个意思

shift /n
用第n+1个参数代替第n个参数的位置
后续参数同上



路 是自己选的
学习 是为了具备解决问题的能力
2008-2-11 14:58
查看资料  发短消息 网志  OICQ (625621812)  编辑帖子  回复  引用回复
jiulong
中级用户




积分 396
发帖 183
注册 2007-12-23
状态 离线
『第 18 楼』:  

利用SHIFT /数字来移位显示到移位之后的数字,有意思

2008-2-19 15:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wjmm
初级用户





积分 48
发帖 19
注册 2008-4-16
状态 离线
『第 19 楼』:  



  Quote:
Originally posted by guxingyibei at 2007-7-11 11:52 AM:
知道用法,但是实际中见的很少!不知道在哪里用

范例
以下批处理文件 Mycopy.bat 显示了如何使用包含任意数目批处理参数的 shift 命令。该批处理文件将一列文件复制到特定的目录。批处理参数由目录和文件名参数表示。

@echo off
rem MYCOPY.BAT copies any number of files
rem to a directory.
rem The command uses the following syntax:
rem mycopy dir file1 file2 ...
set todir=%1
:getfile
shift
if "%1"=="" goto end
copy %1 %todir%
goto getfile
:end
set todir=
echo All done

2008-6-26 09:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jsunhj
贫困用户





积分 -5
发帖 11
注册 2008-6-24
状态 离线
『第 20 楼』:  

===b.bat===
@call a.bat 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

===a.bat===
@echo off&cls
shift /3  ==>第3个参数3被去掉,于是传入的就是 1 2 4 5 6 7 8 9 10
echo  %1 %2 %3 %4 %5 %6 %7 %8 %9
shift /4  ==>在上面剩余参数的基础上,再去掉第4个参数5,于是传入的就是 1 2 4 6 7 8 9 10 11
echo  %1 %2 %3 %4 %5 %6 %7 %8 %9
shift /5  ==>在上面剩余参数的基础上,再去掉第5个参数7,于是传入的就是 1 2 4 6 8 9 10 11 12
echo  %1 %2 %3 %4 %5 %6 %7 %8 %9
pause

2008-6-26 10:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hisplay
初级用户





积分 108
发帖 56
注册 2008-8-11
状态 离线
『第 21 楼』:  

maple 不是内部命令?

2008-8-17 11:16
查看资料  发短消息 网志   编辑帖子  回复  引用回复
weizai3
初级用户





积分 20
发帖 10
注册 2008-9-14
状态 离线
『第 22 楼』:  

shift /0 时,参数从第零位数开始左移一位,结果为:2,3,4,5,6,7,8,9,10
shift /1 时,参数从第一位数开始左移一位,结果为:3,4,5,6,7,8,9,10,11
shift /2 时,参数从第二位数开始左移一位,结果为:3,5,6,7,8,9,10,11,12
shift /3 时,参数从第三位数开始左移一位,结果为:3,5,7,8,9,10,11,12,13
shift /4 时,参数从第四位数开始左移一位,结果为:3,5,7,9,10,11,12,13,14
shift /5 时,参数从第五位数开始左移一位,结果为:3,5,7,9,11,12,13,14,15
下面也就依次类推下去就OK了
看明白了吧。

2008-9-15 22:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
weizai3
初级用户





积分 20
发帖 10
注册 2008-9-14
状态 离线
『第 23 楼』:  

以上方法有点傻,一个比较理解的简单办法
SHIFT /N 也就是在目前有效值范围内去掉N(N=1,2,3,4.....)位置的数,就OK了。(N=0=1,明白吗?)

2008-9-15 22:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
8417a
新手上路





积分 5
发帖 3
注册 2009-12-19
状态 离线
『第 24 楼』:  哈哈

看了半天,从懂到不懂,又从不懂到懂。呵呵,总算清楚了。
就是去掉第N个,由后面的补上来。但是,并不影响最前面两个。

2010-1-8 14:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
js588
初级用户





积分 26
发帖 14
注册 2010-3-3
来自 江苏盐城
状态 离线
『第 25 楼』:  

学习了啊

2010-3-8 12:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: