|
zyz0304360
中级用户
稳
积分 257
发帖 123
注册 2008-1-5 来自 烟台
状态 离线
|
『第
16 楼』:
谢谢你们,我懂了
|
路 是自己选的
学习 是为了具备解决问题的能力 |
|
2008-2-11 14:54 |
|
|
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 |
|
|
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
状态 离线
|
|
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 来自 江苏盐城
状态 离线
|
|
2010-3-8 12:22 |
|
|