下面练习两个命令的使用:setlocal、shift
1、setlocal
执行 setlocal设置环境变量,但是只对该批处理文件有效。要还原原先的设置,必须执行 endlocal。 达到批处理文件结尾时,对于该批处理文件的每个
尚未执行的 setlocal命令,都会有一个隐含的 endlocal被执行。
练习:
echo off
rem 查看环境变量的值
set WOK
setlocal
rem 设置环境变量的值
set WOK=%cd%
rem 查看修改后的值
set WOK
endlocal
set WOK
执行结果:
从上图可以看出,在执行setlocal之前,WOK这个变量不存在;在setlocal后设置了这个变量,在endlocal后,WOK就又不存在了,和java等程序中的局部变量的概念比较相似。
2、shift
shift命令的作用是更改批处理文件中可替换参数的位置。
SHIFT [/n]
如果命令扩展被启用,SHIFT 命令支持/n 命令行开关;该命令行开关告诉命令从第 n 个参数开始移位;n 介于零和八之间。例如:
SHIFT /2
会将 %3 移位到 %2,将 %4 移位到 %3,等等;并且不影响 %0 和 %1。
练习:
echo off
echo %0 %1 %2 %3 %4 %5 %6 %7 %8 %9
shift
echo %0 %1 %2 %3 %4 %5 %6 %7 %8 %9
shift
echo %0 %1 %2 %3 %4 %5 %6 %7 %8 %9
shift
echo %0 %1 %2 %3 %4 %5 %6 %7 %8 %9
执行结果: