CMD 命令行入门教程

CMD 命令行入门教程

从零开始,掌握 Windows 命令行的强大威力

第一部分:基础入门

在IDE中,点击“运行”是透明的。

命令行则让你直面这个过程。

1.1 打开与退出

打开 CMD (命令提示符)

按下键盘上的 Win + R 键。

在弹出的“运行”窗口中输入 cmd。

按下回车键。

退出 CMD

在窗口中输入以下命令并回车:

exit

1.2 理解提示符:你的GPS

打开CMD后,你会看到类似:

C:\Users\YourName>

我在哪儿? C:\Users\YourName 是你当前的工作目录。

我可以输入命令了吗? > 符号表示系统已准备就绪。

1.3 核心导航命令 (1/3)

dir - 查看当前位置有什么

列出当前目录下的所有文件和子目录。

dir

常用参数:

dir /p: 分屏显示,防止内容滚动太快。

dir /w: 以紧凑的宽屏格式显示。

1.3 核心导航命令 (2/3)

cd - 移动到其他位置

进入子目录 (例如 Desktop):cd Desktop

返回上一级目录:cd ..

绝对路径 vs 相对路径: 绝对路径从根目录开始,无论在哪都能准确定位。cd C:\Windows\System32

1.3 核心导航命令 (3/3)

切换驱动器

cd 命令不能跨盘符。要切换到D盘,直接输入盘符和冒号:

d:

要切回C盘:

c:

1.4 屏幕管理 & 1.5 获取帮助

cls - 清空屏幕

当屏幕内容杂乱时,用它来清理。

cls

获取帮助

help: 查看所有内置命令的列表。

[命令] /?: 查看特定命令的详细用法,这是你最好的朋友!

dir /?

1.6 动手实践

打开CMD,确认当前位置 (C:\Users\YourName>)。

查看当前目录,找到 Documents 目录。dir

进入 Documents 目录。cd Documents

再次查看,对比文件资源管理器。dir

返回用户主目录。cd ..

用绝对路径进入Windows目录。cd C:\Windows

分页查看Windows目录。dir /p

清空屏幕。cls

预习 copy 命令。copy /?

退出CMD。exit

第二部分:文件与目录操作

本阶段的目标是让你脱离图形界面,仅用键盘就能高效地完成所有文件和文件夹的管理工作。

准备工作:创建“沙盒”

cd Desktop

mkdir cmd_practice

cd cmd_practice

2.1 创建:从无到有

mkdir (或 md) - 创建新目录

mkdir src

mkdir include

创建文件

echo创建带内容的文件 (^转义):echo #include ^ > src\main.c

type nul创建空文件 :type nul > include\utils.h

2.2 查看 & 2.3 复制

type - 显示文本文件内容

type src\main.c

copy - 复制文件

创建副本:copy src\main.c src\main_backup.c

复制到当前目录 (.):copy src\main.c .

2.4 移动与重命名

move - 身兼两职

重命名文件:move main.c app.c

移动文件到目录:move include\utils.h src\

2.5 删除:清理空间

终极警告: 命令行删除是永久性的,不会进入回收站!请再三确认!

del - 删除文件

del src\main_backup.c

rd (或 rmdir) - 删除目录

删除空目录:rd include

删除非空目录 (危险操作!):rd /s /q src

2.6 通配符:批量操作的利器

当你需要对多个相似文件进行操作时,逐个指定文件名既繁琐又容易出错。通配符让你能够用简洁的模式匹配多个文件。

* (星号) - 匹配任意数量的字符

查看所有文本文件:dir *.txt

复制所有C源文件到备份目录:copy *.c backup\

删除所有临时文件:del temp*.*

? (问号) - 匹配单个字符

查找game1.exe, game2.exe等:dir game?.exe

删除log1.txt到log9.txt:del log?.txt

安全提醒: 使用通配符删除文件时要格外小心!建议先用 dir 命令预览匹配的文件,确认无误后再执行删除操作。

2.7 动手实践

一个完整的项目初始化和清理流程。

创建项目目录: mkdir MyGame

进入目录: cd MyGame

创建子目录: mkdir source, mkdir assets

创建源文件: echo int main() {} > source\game.c

创建备份: copy source\game.c game_test.c

重命名备份: move game_test.c test_backup.c

删除备份: del test_backup.c

返回上一级: cd ..

删除整个项目: rd /s /q MyGame

第三部分:程序执行与环境

理解程序是如何被操作系统发现、编译和执行的,并亲手完成从 .c 源代码到可运行程序的完整过程。

3.1 运行程序 & 3.2 环境变量 PATH

命令的本质

dir, cd, notepad 本质都是可执行程序。

notepad // 打开记事本

calc // 打开计算器

环境变量 PATH

PATH 是一个目录列表。系统只在这些目录里寻找你输入的命令。

查看你自己的 PATH:

path

3.3 编译并运行C代码 (1/2)

前提:安装编译器并配置PATH

安装 MinGW-w64 (GCC for Windows)。

将 MinGW 的 bin 目录 (如 C:\mingw64\bin) 添加到系统 PATH 环境变量中。

机房快捷方式:机房电脑已安装 Dev-C++,它自带 GCC 编译器。右键桌面 Dev-C++ 图标 → 选择"打开文件所在的位置" → 进入安装目录找到 MinGW64\bin,把这个完整路径添加到 PATH。

重启CMD,验证安装:gcc --version

3.3 编译并运行C代码 (2/2)

1. 创建源代码 hello.c

echo #include ^ > hello.c

echo int main() { >> hello.c

echo printf("Hello from CMD!\n"); >> hello.c

echo return 0; >> hello.c

echo } >> hello.c

注意: ^ 用于转义特殊字符 < 和 >。>> 表示追加内容到文件。

也可以直接用 notepad hello.c 打开记事本,把代码粘贴进去保存。

2. 编译

gcc hello.c -o hello.exe

3. 运行

因为当前目录(.)不在PATH中,需要指定路径:

.\hello.exe

3.4 命令行参数 (argc, argv)

通过命令行向C程序传递数据。

1. 创建 args.c 并编译

#include

int main(int argc, char *argv[]) {

printf("Total arguments: %d\n", argc);

for (int i = 0; i < argc; i++) {

printf("argv[%d]: %s\n", i, argv[i]);

}

return 0;

}

gcc args.c -o args.exe

2. 带着参数运行 (用空格隔开)

.\args.exe hello world 123

3. 查看输出

Total arguments: 4

argv[0]: .\args.exe

argv[1]: hello

argv[2]: world

argv[3]: 123

第四部分:提升效率的进阶技巧

学会控制命令的输入和输出,并将多个命令串联起来,形成强大的工作流。

4.1 输入/输出重定向

> (覆盖输出)

将命令结果写入文件,会覆盖原有内容。

dir > file_list.txt

>> (追加输出)

将命令结果追加到文件末尾,常用于日志记录。

echo Program started at %time% > log.txt

echo Program finished at %time% >> log.txt

(%time% 是一个代表当前时间的系统变量)

4.2 find:基础文本搜索

find 是Windows内置的基础文本搜索工具,用于在文件或命令输出中查找指定的字符串。

基本语法

find "搜索内容" 文件名

常用参数

/i: 忽略大小写

/c: 只显示匹配行的数量

/v: 显示不包含指定字符串的行

/n: 显示行号

实际应用示例

在文件中搜索:find "main" hello.c

统计匹配行数:find /c "error" log.txt

忽略大小写搜索:find /i "ERROR" log.txt

4.3 管道 (|):命令的流水线

将前一个命令的输出,直接作为后一个命令的输入。

场景1: 查找所有 .c 文件

dir | find ".c"

场景2: 查找所有Chrome进程

tasklist 命令列出所有进程。

tasklist | find "chrome.exe"

管道让你能将简单工具组合成强大的流程。

4.4 findstr:强大的文本搜索

findstr 是Windows原生的强大文本搜索工具,比 find 更灵活,支持正则表达式和多种搜索模式。

基本语法

findstr [选项] "搜索内容" 文件名

常用参数

/i: 忽略大小写

/n: 显示行号

/c:"文本": 搜索包含空格的精确字符串

/r: 使用正则表达式

/s: 在子目录中递归搜索

4.3 findstr:实际应用示例

场景1: 在源代码中查找函数

findstr /i /n "main" *.c

在所有.c文件中查找包含"main"的行,忽略大小写并显示行号。

场景2: 查找配置文件中的设置

findstr /c:"server port" config.txt

查找包含"server port"的精确字符串。

场景3: 在日志中查找错误

findstr /i "error\|warning\|fail" *.log

使用正则表达式查找包含error、warning或fail的行。

场景4: 递归搜索项目文件

findstr /s /i "TODO" *.java

在当前目录及子目录的所有Java文件中查找TODO注释。

4.5 简单的批处理脚本 (.bat)

当你需要反复执行一系列命令时,把它们写进一个 .bat 文件中。

示例: build.bat 编译并运行C程序

@echo off

echo Cleaning previous build...

del hello.exe

echo Compiling hello.c...

gcc hello.c -o hello.exe

echo Running the program:

.\hello.exe

现在,只需在CMD中运行 build.bat 即可完成所有步骤!

4.5 Bash Is All You Need

Claude 工程师 Thariq Shihipar 的结论:Bash Is All You Need。

这句话不是说“只学 Bash 就够了”,而是强调:在 Code Agent 时代,命令行是最通用、最可组合、最可自动化的执行界面。

为什么这件事现在更重要

统一接口:无论是编译、测试、Git、部署,本质都可以收敛为命令行调用。

天然可编排:管道、重定向、脚本让“单步操作”升级为“可复用流程”。

Agent 友好:Code Agent 最稳定的协作方式之一,就是读取输出并继续执行下一条命令。

课堂行动:后续所有“点按钮能完成的事”,都尽量补一条等价命令行写法。

参考:Building agents with the Claude Agent SDK、Anthropic Bash Tool

*4.6 高级批处理脚本编程

掌握条件判断、循环和变量,让你的批处理脚本更加智能和强大。

本节内容

条件判断: 使用 if 语句进行逻辑控制

循环结构: 使用 for 循环批量处理

变量操作: 动态存储和使用数据

综合应用: 实际项目自动化脚本

这些技能让你能够编写真正实用的自动化工具。

条件判断:if 语句

使用 if 语句让脚本根据不同条件执行不同操作。

基本语法

if condition (

command1

command2

) else (

command3

command4

)

常用条件判断

if exist filename - 检查文件是否存在

if "%var%"=="value" - 字符串比较

if %num% GTR 10 - 数值比较 (GTR, LSS, EQU)

if errorlevel 1 - 检查命令执行结果

条件判断实例

检查文件存在性

@echo off

set "target_file=config.txt"

if exist "%target_file%" (

echo 配置文件存在,开始处理...

type "%target_file%"

) else (

echo 配置文件不存在,创建默认配置...

echo default_setting=true > "%target_file%"

)

用户输入验证

@echo off

set /p user_choice="请选择操作 (1-备份, 2-清理): "

if "%user_choice%"=="1" (

echo 开始备份操作...

xcopy *.txt backup\ /y

) else if "%user_choice%"=="2" (

echo 开始清理操作...

del temp\*.tmp

) else (

echo 无效选择,请重新运行脚本

)

循环结构:for 循环

使用 for 循环批量处理文件、目录或数据序列。

基本语法形式

:: 遍历文件

for %%i in (*.txt) do command

:: 遍历目录

for /d %%i in (*) do command

:: 遍历数字序列

for /l %%i in (start,step,end) do command

:: 处理文件内容

for /f "tokens=1,2" %%i in (file.txt) do command

注意: 在批处理文件中使用 %%i,在命令行中使用 %i

for 循环实例

批量重命名文件

@echo off

set counter=1

for %%f in (*.jpg) do (

ren "%%f" "photo_!counter!.jpg"

set /a counter+=1

)

遍历子目录并统计文件

@echo off

echo 目录文件统计报告

echo ==================

for /d %%d in (*) do (

echo 正在统计目录: %%d

dir "%%d" /b /a-d | find /c /v "" > temp.txt

set /p file_count=

set 语句详解

set 是批处理脚本中最重要的命令之一,用于变量操作和用户交互。

基本语法形式

:: 基本变量设置

set variable_name=value

:: 用户输入

set /p variable_name=prompt_message

:: 数学运算

set /a variable_name=expression

:: 显示所有环境变量

set

:: 显示特定变量

set variable_name

重要: 等号两边不要有空格,使用引号可以包含空格

set 语句实用示例

基本变量设置与字符串操作

:: 基本设置

set "username=张三"

set "project_path=C:\MyProject"

set "config_file=%project_path%\config.ini"

:: 字符串拼接

set "full_name=%username%_developer"

set "backup_name=%project_path%_backup_%date:~0,4%%date:~5,2%%date:~8,2%"

:: 清空变量

set "temp_var="

用户输入与验证

:: 获取用户输入

set /p "user_name=请输入您的姓名: "

set /p "project_type=选择项目类型 (web/desktop/mobile): "

:: 输入验证示例

:input_loop

set /p "confirm=确认删除所有文件吗? (y/n): "

if /i "%confirm%"=="y" goto delete_files

if /i "%confirm%"=="n" goto cancel

echo 请输入 y 或 n

goto input_loop

set /a 数学运算

使用 set /a 进行整数数学运算,支持多种运算符。

基本运算

:: 基本算术运算

set /a "result=10+5" :: 加法: 15

set /a "result=20-8" :: 减法: 12

set /a "result=6*7" :: 乘法: 42

set /a "result=15/3" :: 除法: 5

set /a "result=17%%5" :: 取余: 2

:: 复合运算

set /a "result=(10+5)*2" :: 括号优先: 30

set /a "result=2**3" :: 幂运算: 8

实用计算示例

:: 计数器应用

set /a "counter=0"

for %%f in (*.txt) do (

set /a "counter+=1"

echo 处理第 !counter! 个文件: %%f

)

:: 进度计算

set /a "total_files=100"

set /a "processed=75"

set /a "percentage=processed*100/total_files"

echo 进度: %percentage%%%

:: 时间计算 (秒转换)

set /a "total_seconds=3665"

set /a "hours=total_seconds/3600"

set /a "minutes=(total_seconds%%3600)/60"

set /a "seconds=total_seconds%%60"

echo 时间: %hours%:%minutes%:%seconds%

变量操作与环境设置

变量定义与使用

:: 设置变量

set "project_name=MyProject"

set "version=1.0"

set /a "build_number=100"

:: 使用变量

echo 项目: %project_name%

echo 版本: %version%

echo 构建号: %build_number%

:: 延迟变量展开 (用于循环中)

setlocal enabledelayedexpansion

set counter=0

for %%i in (*.txt) do (

set /a counter+=1

echo 文件 !counter!: %%i

)

环境变量与路径操作

:: 获取当前目录和文件信息

set "current_dir=%cd%"

set "script_dir=%~dp0"

set "temp_dir=%temp%\%project_name%"

:: 创建临时工作目录

if not exist "%temp_dir%" mkdir "%temp_dir%"

综合应用:项目自动化脚本

结合条件判断、循环和变量,创建实用的项目管理脚本。

@echo off

setlocal enabledelayedexpansion

title 项目自动化管理工具

:: 设置项目变量

set "project_name=WebProject"

set "backup_dir=backup_%date:~0,4%%date:~5,2%%date:~8,2%"

set "log_file=automation.log"

echo ================================

echo 项目自动化管理工具 v1.0

echo ================================

echo.

:: 检查项目目录结构

echo [%time%] 检查项目结构... >> %log_file%

if not exist "src" (

echo 创建 src 目录...

mkdir src

echo [%time%] 创建 src 目录 >> %log_file%

)

if not exist "dist" (

echo 创建 dist 目录...

mkdir dist

echo [%time%] 创建 dist 目录 >> %log_file%

)

:: 备份现有文件

echo 开始备份文件...

if exist "%backup_dir%" rmdir /s /q "%backup_dir%"

mkdir "%backup_dir%"

set file_count=0

for %%f in (src\*.js src\*.css src\*.html) do (

copy "%%f" "%backup_dir%\" > nul

set /a file_count+=1

echo 备份: %%f

)

echo 备份完成,共备份 !file_count! 个文件

echo [%time%] 备份完成,文件数: !file_count! >> %log_file%

综合应用:构建与部署脚本

:: 清理旧的构建文件

echo 清理构建目录...

if exist "dist\*" del /q "dist\*"

:: 编译处理 (模拟)

echo 开始构建项目...

set build_success=true

for %%f in (src\*.js) do (

echo 处理: %%f

:: 这里可以调用实际的编译工具

copy "%%f" "dist\" > nul

if errorlevel 1 (

echo 错误: 处理 %%f 失败

set build_success=false

echo [%time%] 构建失败: %%f >> %log_file%

)

)

:: 检查构建结果

if "%build_success%"=="true" (

echo.

echo ✓ 构建成功完成!

echo [%time%] 构建成功 >> %log_file%

:: 生成部署报告

echo 生成部署报告...

echo 项目: %project_name% > deploy_report.txt

echo 构建时间: %date% %time% >> deploy_report.txt

echo 文件列表: >> deploy_report.txt

dir dist /b >> deploy_report.txt

echo ✓ 部署报告已生成: deploy_report.txt

) else (

echo.

echo ✗ 构建失败,请检查错误日志

echo [%time%] 构建失败 >> %log_file%

)

echo.

echo 自动化流程完成,详细日志请查看: %log_file%

pause

*4.7 动手实践

任务: 找出 C:\Windows\System32 下所有 .dll 文件,保存列表,并统计数量。

1. 保存列表

用管道连接 dir 和 find,再用重定向保存结果。

dir C:\Windows\System32 | find ".dll" > dll_list.txt

2. 统计数量

使用 find 命令的 /c (count) 参数。

dir C:\Windows\System32 | find /c ".dll"

用两行核心命令,完成了一个原本需要手动操作很久的任务。

第五部分:常用命令速查表 (1/4)

文件与目录

dir: 列出内容 (/p, /s)

cd: 切换目录 (.., \)

mkdir (md): 创建目录

copy: 复制文件

move: 移动或重命名

del: 删除文件

rd (rmdir): 删除目录 (/s /q 强制)

type: 显示文本内容

cls: 清屏

第五部分:常用命令速查表 (2/4)

网络相关

ping [host]: 测试网络连接和延迟。

ipconfig: 查看本机IP配置 (/all 看详情)。

nslookup [domain]: 查询域名对应的IP地址。

tracert [host]: 跟踪数据包路由路径。

netstat -an: 显示所有网络连接和监听端口。

第五部分:常用命令速查表 (3/4)

系统管理

tasklist: 显示运行中的进程。

taskkill /im [name] /f: 强制终止进程。

systeminfo: 显示详细的系统配置信息。

shutdown /s /t [secs]: 定时关机。

sfc /scannow: 扫描并修复系统文件。

chkdsk c: /f: 检查并修复C盘错误。

第五部分:常用命令速查表 (4/4)

学习建议

不必死记硬背:把列表当作字典来查。

多用 /?:[命令名] /? 是你最好的老师。

组合使用:用管道 | 和 find 过滤命令输出,例如:

systeminfo | find "System Boot Time"

恭喜你,完成了本次学习!

上一页

1 / X

下一页

Copyright © 2088 王者太极网游活动福利平台 All Rights Reserved.
友情链接