![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-08 11:10 |
共 47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行 |
| DOS学习入门 & 精彩文章 (教学室) » 批处理命令-----Shift的用法! |
| 可打印版本 9,859 / 24 |
| 第16楼 zyz0304360 | 发表于 2008-02-11 14:54 |
| 中级用户 发帖 123 积分 257 来自 烟台 | |
|
谢谢你们,我懂了
|
|
| 第17楼 zyz0304360 | 发表于 2008-02-11 14:58 |
| 中级用户 发帖 123 积分 257 来自 烟台 | |
|
更改批处理文件中可替换参数的位置。
SHIFT [/n] 如果命令扩展名被启用,SHIFT 命令支持/n 命令行开关;该命令行开关 命令从第 n 个参数开始移位;n 介于零和八之间。例如: SHIFT /2 会将 %3 移位到 %2,将 %4 移位到 %3,等等;并且不影响 %0 和 %1。 跟33楼的抛位差不多一个意思 shift /n 用第n+1个参数代替第n个参数的位置 后续参数同上 |
|
| 第18楼 jiulong | 发表于 2008-02-19 15:51 |
| 中级用户 发帖 183 积分 396 | |
|
利用SHIFT /数字来移位显示到移位之后的数字,有意思
|
|
| 第19楼 wjmm | 发表于 2008-06-26 09:22 |
| 初级用户 发帖 19 积分 48 | |
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 |
|
| 第20楼 jsunhj | 发表于 2008-06-26 10:54 |
| 贫困用户 发帖 11 积分 -5 | |
|
===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 |
|
| 第21楼 hisplay | 发表于 2008-08-17 11:16 |
| 初级用户 发帖 56 积分 108 | |
|
maple 不是内部命令?
|
|
| 第22楼 weizai3 | 发表于 2008-09-15 22:30 |
| 初级用户 发帖 10 积分 20 | |
|
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了 看明白了吧。 |
|
| 第23楼 weizai3 | 发表于 2008-09-15 22:41 |
| 初级用户 发帖 10 积分 20 | |
|
以上方法有点傻,一个比较理解的简单办法
SHIFT /N 也就是在目前有效值范围内去掉N(N=1,2,3,4.....)位置的数,就OK了。(N=0=1,明白吗?) |
|
| 第24楼 8417a | 发表于 2010-01-08 14:45 |
| 新手上路 发帖 3 积分 5 | |
|
哈哈 看了半天,从懂到不懂,又从不懂到懂。呵呵,总算清楚了。
就是去掉第N个,由后面的补上来。但是,并不影响最前面两个。 ![]() |
|
| 第25楼 js588 | 发表于 2010-03-08 12:22 |
| 初级用户 发帖 14 积分 26 来自 江苏盐城 | |
|
学习了啊
|
|
| 上一页 1 2 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |