Windows 命令行与批处理

993 字
5 分钟
Windows 命令行与批处理

命令行#

cmd与PowerShell#

cmd是power shell的子集。

说明#

  • 不区分大小写
  • 按上下键可以查看历史命令
  • Tab键可以自动补全
  • 使用/?/help可以查看命令用法,用法中的[]代表可选
  • 命令基本格式命令 参数列表

基本命令#

命令功能举例
echo显示
pause暂停pause > nul
cls清屏
exit退出

常用命令#

命令功能举例
type显示文件内容type 1.txt
find查找字符串find "abc" 2.txt
fc比较文件内容fc 1.txt 2.txt
date显示/修改日期date /T
time显示/修改时间time /T
ping网络连接测试ping www.baidu.com
ipconfigTCP/IP信息
set /a计算表达式set /a 6%4
shutdown关机shutdown /s /t 60

多命令#

Terminal window
& 顺序执行多条命令,不管命令是否执行成功
&& 顺序执行多条命令,前面的命令错误则不执行后面的命令
|| 顺序执行多条命令,碰到执行正确的命令后将不执行后面的命令
abc & dir & bcd
abc && dir && bcd
abc || dir || bcd

重定向#

Terminal window
> 输出重定向
>> 追加重定向
< 输入重定向
date /t > 1.txt
time /t >> 1.txt
find "/" < 1.txt

管道#

Terminal window
| 前一个命令的输出作为后一个命令的输入
dir | find "txt"

文件操作命令#

路径分隔符\

当前目录.

上一级目录..

命令功能举例
dir显示文件夹内容dir /A
tree显示文件夹树形结构tree /F
盘符:进入指定磁盘c: d:
cd切换目录cd test cd ..
mkdirmd创建目录mkdir test
rmdirrd删除目录rmdir test
del删除文件del 1.txt del /q/a/f *.txt
renameren重命名rename a.txt b.txt
copy复制文件copy a\1.txt b\1.txt
move移动文件/重命名move a\1.txt 2.txt

批处理#

基本结构#

Terminal window
@echo off # 关闭回显
......
pause # 暂停。或 pause > nul

运行方式#

  • 双击运行
  • 在cmd中运行(可以传参)

变量#

Terminal window
# 设置变量
set 变量名=变量值
set /a 变量名=表达式
# 取消变量
set 变量名=
# 打印变量
set 变量名
# 列出变量
set
# 引用变量
%变量名%
# 输入变量值
set /p 变量名=提示文字

预定义的变量#

变量名
%cd%当前目录
%date%当前日期
%time%当前时间
%random%0~32767之间的随机数
%path%环境变量
%errorlevel%上一个命令的返回值,0表示执行成功
%0%1%2……参数。%0表示命令名

调用#

Terminal window
call 可执行文件 [参数列表]

条件#

Terminal window
if [not] 条件 (
语句块
) else (
语句块
)
# 条件:
errorlevel number # 上一个程序的返回值大于等于number则为true
string1==string2 # 两个字符串匹配则为true
exist filename # 文件名存在则为true
[/I] string1 compare-op string2 # 比较数值或字符串
# /I 忽略大小写
# compare-op包括:
# equ 等于
# neq 不等于
# lss 小于
# leq 小于等于
# gtr 大于
# geq 大于等于
defined variable # 如果定义了该变量则为true

跳转#

Terminal window
goto label # 跳转到标签所在行
:label # 标签以冒号开头

循环#

基本语法

Terminal window
for %%i in (set) do (
语句块
)
# 循环变量用 %% 指定,只能是单字母
# set表示文件集合(也可以是空文件),元素之间以逗号或空格分隔,支持通配符
for %%i in (a,b,c) do (echo %%i)
for %%i in (*.*) do (echo %%i)

扩展语法

  • 只遍历文件夹

    Terminal window
    for /d %%i in (set) do
  • 遍历指定文件夹下的所有文件,不指定则表示当前目录。如果set为.表示枚举目录树

    Terminal window
    for /r [[drive:]path] %%i in (set) do
    for /r %%i in (*) do (echo %%i)
    for /r d:\up %%i in (.) do (echo %%i)
  • 遍历数字序列

    Terminal window
    for /l %%i in (start,step,end) do
  • 遍历文件内容

    Terminal window
    for /f ["options"] %%i in (set) do

通配符#

Terminal window
? # 单个字符
* # 任意字符

例子#

按顺序为文件夹中的文件命名。

批处理中for循环的自增自减问题_Dandelion_gong的博客-CSDN博客_bat for 自增

Terminal window
@echo off
setlocal enabledelayedexpansion
set cnt=0
for %%i in (%1) do (
rename %%i !cnt!.txt
set /a cnt=!cnt! + 1
)
pause

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Windows 命令行与批处理
https://sakurahu.netlify.app/posts/windows命令行与批处理/
作者
Sakura
发布于
2026-04-19
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
Sakura
Hello, I'm Sakura.
公告
欢迎来到我的博客!这是一则示例公告。
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
4
分类
1
标签
4
总字数
7,322
运行时长
0
最后活动
0 天前

目录