游客

Windows CMD 脚本教程(第二课)—— 条件判断与循环

一言准备中...

欢迎来到 CMD 脚本第二课!今天我们将学习如何用 if 进行条件判断,以及用 for 实现循环操作,让你的脚本更智能、更高效。


1. 条件判断(if 语句)

(1) 基本语法

if 条件 (
    命令
) else (
    其他命令
)

示例:检查文件是否存在

@echo off
if exist "C:\test.txt" (
    echo 文件存在!
) else (
    echo 文件不存在!
)
pause

(2) 比较数值/字符串

比较方式 语法 示例
等于 == if "%var%"=="yes"
不等于 not == if not "%var%"=="no"
数值比较 equ, gtr, lss if 10 gtr 5(大于)

示例:用户输入判断

@echo off
set /p choice=是否继续?(y/n):
if /i "%choice%"=="y" (
    echo 用户选择了继续
) else if "%choice%"=="n" (
    echo 用户选择了退出
) else (
    echo 输入无效
)
pause

说明

  • /i 表示忽略大小写(如 yY 均可匹配)。

2. 循环操作(for 语句)

(1) 遍历文件

列出当前目录所有 .txt 文件:

@echo off
for %%f in (*.txt) do (
    echo 找到文件:%%f
)
pause

关键点

  • 循环变量用 %%f(在命令行直接运行时要改为 %f)。
  • (*.txt) 是通配符,匹配所有文本文件。

(2) 数字范围循环

循环 5 次:

@echo off
for /l %%i in (1,1,5) do (
    echo 当前次数:%%i
)
pause

参数解释

  • (1,1,5) = 从 1 开始,步长 1,到 5 结束。

(3) 逐行读取文件

读取 data.txt 的每一行:

@echo off
for /f "tokens=*" %%a in (data.txt) do (
    echo 当前行内容:%%a
)
pause

说明

  • tokens=* 表示读取整行(默认按空格分割,可调整)。

3. 综合案例

批量重命名文件(.txt.bak

@echo off
setlocal enabledelayedexpansion
for %%f in (*.txt) do (
    set "old=%%f"
    set "new=!old:.txt=.bak!"
    ren "!old!" "!new!"
    echo 已重命名:!old! → !new!
)
pause

关键技巧

  • setlocal enabledelayedexpansion 启用延迟变量扩展(避免循环内变量值问题)。
  • !var! 代替 %var% 获取动态更新的变量值。

4. 错误处理

(1) 检查命令是否成功

@echo off
dir C:\nonexistent 2>nul
if %errorlevel% neq 0 (
    echo 命令执行失败!
)
pause

说明

  • %errorlevel% 存储上一条命令的退出码(0 表示成功)。
  • 2>nul 隐藏错误信息。

5. 练习任务

  1. 写一个脚本:检查 C:\Windows 是否存在,如果存在则列出其中的 .exe 文件,否则报错。
  2. 进阶挑战:让用户输入一个路径,统计该路径下有多少个 .jpg 文件。

练习答案

任务1:检查目录并列出文件

@echo off
if exist "C:\Windows" (
    echo 正在列出 C:\Windows 下的 .exe 文件...
    dir /b C:\Windows\*.exe
) else (
    echo 错误:C:\Windows 不存在!
)
pause

任务2:统计用户指定路径的 .jpg 文件

@echo off
set /p path=请输入要统计的路径:
set count=0
for /f %%a in ('dir /b "%path%\*.jpg" 2^>nul ^| find /c /v ""') do set count=%%a
echo 找到 %count% 个 .jpg 文件
pause

6. 下一步学习

  • 第三课:文件操作(复制、删除、重命名)和函数封装。
  • 第四课:高级技巧(注册表操作、网络命令)。
  • 本文作者:菜鬼
  • 本文链接: https://caigui.net/post-17.html
  • 版权声明:本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。
文章很赞!支持一下吧 还没有人为TA充电
为TA充电
还没有人为TA充电
0
0
  • 支付宝打赏
    支付宝扫一扫
  • 微信打赏
    微信扫一扫
感谢支持
文章很赞!支持一下吧
关于作者
130
4
0
1
梦想不大,创造神话。

Windows CMD 脚本教程(第一课)—— 基础入门

上一篇

Windows CMD 脚本教程(第三课)—— 文件操作与函数封装

下一篇
评论区
内容为空

这一切,似未曾拥有