本帖最后由 tmplinshi 于 2015-2-17 06:51 编辑
1、
- 调用子程序应该使用 call,而不是 goto。
- 要结束子程序可使用 goto :eof 或者 exit /b。
其中 exit /b 的末尾可指定一个数字退出码(例如 exit /b 1234567890),之后能用 %errorlevel% 获取退出码。
- 子程序中的变量也是全局的,除非你在设置变量之前加了 setlocal
- :: 调用子程序示例
-
- @echo off
-
- set n=
- call :全局变量
- echo n=%n%
- echo,
-
- set n=
- call :变量不保存
- echo n=%n%
- echo errorlevel=%errorlevel%
-
- pause & exit
-
- :全局变量
- echo %0
- set n=123
- goto :eof
-
- :变量不保存
- setlocal
- echo %0
- set n=123
- exit /b 2015
复制代码 2、
判断sed执行成功?如果你的 sed 命令是错误的,sed 会提示错误,然后 errorlevel 会变成 1。
3、
没有 if n between 2 and 5 这样的写法。你可以把两个 if 写在同一行..- if %n% gtr 2 if %n% lss 5 echo "2<n<5"
复制代码 4、- :: if....else嵌套示例
-
- if "%n%" == "1" (
- echo 1
- ) else if "%n%" == "2" (
- echo 2
- ) else if "%n%" == "3" (
- echo 3
- ) else (
- echo -
- )
复制代码
|