1 if
if exist d:\test.txt (echo D盘下有test.txt存在) else (echo D盘下不存在test.txt)
if "abc"=="xyz" (echo 字符串abc等于字符串xyz) else (echo 字符串abc不等于字符串xyz)
if 1 equ 2 (echo 1等于2) else (echo 1不等于2)
if defined str (echo 变量str已经被赋值,其值为%str%) else (echo 变量str的值为空)
if %errorlevel% == 0 (echo net user 命令执行成功) else (echo net user 命令执行失败)
2 for
格式:FOR %variable IN (set) DO command [command-parameters]
%variable 指定一个单一字母可替换的参数。变量名称是区分大小写的,所以 %i 不同于 %I
(set) 指定一个或一组文件。可以使用通配符。
command 指定对每个文件执行的命令。
command-parameters 为特定命令指定参数或命令行开关。
参数 /D (参数只能显示当前目录下的目录名字)
for /d %i in (c:\*) do echo %i --显示c盘根目录下的所有目录
参数 /R (搜索指定路径及所有子目录中与set相符合的所有文件)
for /r c:\ %i in (boot.ini) do if exist %i echo %i --很好的搜索命令,列举boot.ini存在的目录
参数 /L (该集表示以增量形式从开始到结束的一个数字序列。可以使用负的 Step)
for /l %i in (1,2,10) do @echo %i --输出1,3,5,7,9
参数 /F (使用文件解析来处理命令输出、字符串及文件内容。)
for /f "tokens=1,2,3* delims=-, " %i in ("aa bb,cc-dd ee") do echo %i %j %k %l 分析字符串
FOR命令中的变量
FOR 变量参照的替换已被增强。您现在可以使用下列选项语法:
~I - 删除任何引号("),扩充 %I
%~fI - 将 %I 扩充到一个完全合格的路径名
%~dI - 仅将 %I 扩充到一个驱动器号
%~pI - 仅将 %I 扩充到一个路径
%~nI - 仅将 %I 扩充到一个文件名
%~xI - 仅将 %I 扩充到一个文件扩展名
%~sI - 扩充的路径只含有短名
%~aI - 将 %I 扩充到文件的文件属性
%~tI - 将 %I 扩充到文件的日期/时间
%~zI - 将 %I 扩充到文件的大小
%~$PATH:I - 查找列在路径环境变量的目录(TTT提示:是环境变量path的目录),并将 %I 扩充到找到的第一个完全合格的名称。如果环境变量名未被定义,或者没有找到文件,此组合键会扩充到空字符串
此外,还可以组合修饰符来得到多重结果:
%~dpI - 仅将 %I 扩充到一个驱动器号和路径
%~nxI - 仅将 %I 扩充到一个文件名和扩展名
%~fsI - 仅将 %I 扩充到一个带有短名的完整路径名
%~dp$PATH:i - 查找列在路径环境变量的目录,并将 %I 扩充到找到的第一个驱动器号和路径。
%~ftzaI - 将 %I 扩充到类似输出线路的 DIR
在以上例子中,%I 和 PATH 可用其他有效数值代替。%~ 语法用一个有效的 FOR 变量名终止。选取类似 %I 的大写变量名比较易读,而且避免与不分大小写的组合键混淆。
(以上是系统帮助的内容)
我们可以看到每行都有一个大写字母"I",这个I其实就是我们在FOR带入的变量,例如:
FOR /F "usebackq eol=; tokens=1,2* delims=,- " %%x in ("d:\test.txt") do echo %%x %%y %%z
这里我们就要把那个x,y,z改成%~fx,%~fy,%~fz。
3.goto 选择菜单
:menu
echo 1) 安装手机驱动
echo 2) 检测设备状态
set /p choice= 输入数字,选择你需要的操作:
echo.
if '%choice%'=='1' goto :drivers
if '%choice%'=='2' goto :statusdevice
:drivers
{指令}
goto menu 返回menu
:statusdevice
{指令}
goto menu 返回menu