windows cmd教程

第一步:打开 CMD
• 方法1:按 Win + R,输入 cmd,按回车。
• 方法2:在资源管理器地址栏输入 cmd,直接进入当前目录的命令行。
• 方法3:搜索“命令提示符”并打开(建议以管理员身份运行)。
第二步:基础命令
以下是常用命令,先熟悉它们的用途:
1. 目录和文件操作
命令说明示例dir列出当前目录内容dircd <路径>切换目录cd C:\Userscd ..返回上一级目录cd ..mkdir <目录名>创建新目录mkdir NewFolderrmdir <目录名>删除空目录rmdir OldFolderdel <文件名>删除文件del file.txtcopy <源> <目标>复制文件copy a.txt b.txtxcopy <源> <目标>复制目录(含子目录)xcopy C:\src D:\dst /Etype <文件名>显示文本文件内容type log.txt2. 系统信息与网络
命令说明示例ipconfig显示网络配置信息ipconfig /allping <地址>测试网络连通性ping google.comsysteminfo显示系统详细信息systeminfotasklist列出正在运行的进程tasklisttaskkill /PID
命令说明示例cls清屏clsecho <文本>输出文本echo Hello Worlddate / time显示或设置日期/时间date /texit退出 CMDexit
第三步:批处理脚本(.bat 或 .cmd 文件)
批处理脚本是包含多个 CMD 命令的文本文件,扩展名为 .bat 或 .cmd。通过脚本可以自动化重复任务。
1. 创建第一个脚本
新建一个文本文件,命名为 hello.bat。右键编辑,输入:@echo off
echo Hello World!
pause
保存后双击运行。
解释:
• @echo off:关闭命令回显(不显示执行的命令)。
• echo Hello World!:输出文本。
• pause:暂停,等待用户按任意键继续。
2. 变量和参数
• 定义变量:用 set 命令。
set name=Alice
echo My name is %name%.
• 使用参数:%1, %2 表示第一个、第二个参数。
echo The first argument is %1.
3. 条件判断(IF)
@echo off
if "%1" == "admin" (
echo Welcome, Administrator!
) else (
echo Access Denied.
)
4. 循环(FOR)
• 遍历文件:
for %%f in (*.txt) do echo Processing file: %%f
• 数字循环:
for /l %%i in (1,1,5) do echo Counting: %%i
5. 调用其他脚本或命令
call another_script.bat
start notepad.exe
第四步:实战案例
案例1:自动备份文件
@echo off
set backup_folder=Backup_%date:/=-%
mkdir %backup_folder%
xcopy C:\MyDocs\*.* %backup_folder% /E /H
echo Backup completed!
pause
案例2:批量重命名文件
@echo off
setlocal enabledelayedexpansion
set count=1
for %%f in (*.jpg) do (
ren "%%f" "photo!count!.jpg"
set /a count+=1
)
echo Files renamed.
第五步:进阶技巧
错误处理:if errorlevel 1 echo An error occurred.
管道和重定向:dir > filelist.txt # 输出到文件
type file.txt | find "error" # 过滤内容
环境变量:echo %PATH% # 显示系统路径
setx MY_VAR "123" # 永久设置环境变量
定时任务:
使用 schtasks 命令或 Windows 任务计划程序运行脚本。
好的!接下来我们继续深入 Windows CMD 编程,涵盖更高级的批处理脚本技巧、实用函数、系统管理工具,以及如何将 CMD 与其他工具结合使用。
第六部分:高级批处理脚本技巧
1. 延迟变量扩展(Delayed Expansion)
在循环或代码块中直接使用变量时,CMD 默认会先解析变量再执行代码,导致变量值无法动态更新。使用 setlocal enabledelayedexpansion 和 !var! 语法解决:
@echo off
setlocal enabledelayedexpansion
set count=0
for /l %%i in (1,1,5) do (
set /a count+=1
echo Current count: !count!
)
说明:!count! 会实时更新值,而 %count% 不会。
2. 参数扩展(处理文件路径)
使用 %~ 语法处理传入脚本的参数,提取文件名、路径等信息:
@echo off
echo 完整路径:%~f1 (例如:C:\Files\test.txt)
echo 仅文件名:%~n1 (例如:test)
echo 文件扩展名:%~x1 (例如:.txt)
echo 驱动器盘符:%~d1 (例如:C:)
echo 文件大小:%~z1 (字节数)
使用场景:批量处理文件时提取关键信息。
3. 用户输入交互
用 set /p 命令让用户输入数据:
@echo off
set /p name=请输入你的名字:
echo 你好,%name%!
4. 调用外部程序和函数
• 调用其他程序:
@echo off
notepad.exe # 打开记事本
start excel.exe # 启动Excel(非阻塞方式)
• 定义子程序(函数):
@echo off
call :say_hello Alice
exit /b
:say_hello
echo Hello, %1!
exit /b
第七部分:错误处理与调试
1. 错误代码处理
CMD 中每条命令执行后都会返回一个错误码(errorlevel),0 表示成功,非零表示失败:
@echo off
copy file1.txt file2.txt
if %errorlevel% neq 0 (
echo 文件复制失败!
)
2. 调试技巧
• 显示执行的命令:去掉 @echo off 或在脚本中加 echo on。
• 输出日志:
@echo off
echo 开始执行脚本... > log.txt
dir C:\ >> log.txt
echo 执行完成! >> log.txt
第八部分:系统管理实战
案例1:自动清理临时文件
@echo off
set temp_folder=%TEMP%
echo 正在清理临时文件夹:%temp_folder%
del /q /s %temp_folder%\*.*
rmdir /q /s %temp_folder%
echo 清理完成!
pause
案例2:批量修改文件编码(结合 certutil)
将当前目录下的所有 .txt 文件从 ANSI 转换为 UTF-8:
@echo off
for %%f in (*.txt) do (
certutil -encode "%%f" "%%~nf_utf8.txt"
del "%%f"
ren "%%~nf_utf8.txt" "%%f"
)
echo 文件编码已转换!
第九部分:CMD 与 PowerShell 结合
CMD 功能有限,但可以通过调用 PowerShell 实现复杂操作:
@echo off
# 调用 PowerShell 获取系统信息
powershell -Command "Get-Process | Sort-Object CPU -Descending | Select-Object -First 5"
# 调用 PowerShell 下载文件
powershell -Command "Invoke-WebRequest -Uri 'https://example.com/file.zip' -OutFile 'C:\file.zip'"
第十部分:高级工具推荐
文本处理工具:
• findstr:增强版文本搜索(支持正则表达式)。
• find:基本文本过滤。
dir /s /b | findstr "\.log$" # 查找所有 .log 文件
系统工具:
• schtasks:管理计划任务。
• wmic:查询系统信息(已逐步被 PowerShell 替代)。
第十一部分:避坑指南
路径中的空格:
• 用引号包裹路径:del "C:\My Documents\file.txt"
特殊字符转义:
• 使用 ^ 转义符号:echo ^& 输出 &。
权限问题:
• 以管理员身份运行脚本(右键 -> 以管理员身份运行)。
动手项目
尝试完成以下任务:
自动安装程序脚本:
• 检查是否已安装 Java,若未安装则静默安装。
@echo off
if exist "C:\Program Files\Java\jre1.8.0_301\bin\java.exe" (
echo Java 已安装。
) else (
echo 正在安装 Java...
start /wait jre-8u301-windows-x64.exe /s
)
监控系统资源:
• 每 5 秒记录一次 CPU 和内存使用情况到日志文件。
下一步学习建议
转向 PowerShell:
• PowerShell 是更强大的脚本语言,支持面向对象和 .NET 框架。
学习 AutoHotkey:
• 自动化键盘、鼠标操作,增强 CMD 脚本功能。