批处理文件
(Batch File,简称 BAT文件)是一种在DOS 下最常用的可执行文件,也称为批处理脚本,是对某对象进行批量的处理,批处理文件的扩展名为bat。

当前盘符/当前bat路径

bat脚本显示当前盘符、当前路径、当前bat脚本路径

当前盘符 %d0、当前路径 %cd%、当前执行命令行 %0、当前bat文件路径 %dp0、当前bat文件短路径 %~dp0
编写代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
::关闭echo回显
@echo off

::当前盘符
echo current pan : %~d0

::当前路径
echo current path : %cd%

::当前执行命令行
echo current cmd : %0

::当前bat文件路径
echo the bat’s path : %~dp0

::当前bat文件短路径
echo the bat’s path : %~dp0

::暂停bat脚本
Pause

测试效果:

bat脚本运行完后删除自身

1
2
3
4
5
rem 批处理运行完后删除自身
del %0

rem 若批处理中有变更自身名字,则需要用到管道
rem del %0 | move *.* d:\

使用bat批处理删除文件夹和文件

1
2
3
rd /s/q C:\Users\Administrator\Desktop\新建文件夹\mp3

pause

windows bat批量创建文件夹与文件

  1. 一、新建bat文件 批量创建.bat
    1
    2
    3
    4
    5
    6
    7
    8
    @echo off
    for /f %%i in (
    nameList.txt
    ) do mkdir %%i && copy muban.docx %%i\%%i.docx

    :: do mkdir %%i && copy muban.docx %%i\%%i.docx && start %%i\%%i.docx

    ::pause
  2. 二、创建文件 nameList.txt
    把文件夹名字粘贴到 nameList.txt
  3. 三、创建空文件 muban.docx
    备注: 批量创建.bat 、 nameList.txt 、 muban.docx位于同一目录。

Windows批处理(cmd/bat)快速新建文件夹

在进行毕业设计时,随着每日的任务不同,需要新建不同文件夹来区分任务,但手敲新建重命名太过繁琐,经过资料的查找,找到了在windows系统下bat文件的快速新建文件夹的方法,效果展示如下:

本次批处理用到的命令

  • echo

    打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。

1
2
3
4
echo on 			 #从下一行开始打开回显
echo off #从下一行开始关闭回显
@echo off #从本行开始关闭回显
echo hello world #输出hello world
  • pause

    暂停命令:
    将显示下面的消息:请按任意键继续. .

  • set

    显示、设置或删除变量。
    显示变量:set 或 set s 前者显示批处理当前已定义的所有变量及其值,后者显示所有以s开头的变量及值。
    设置变量:set aa=abcd 此句命令便可向变量aa赋值abcd。
    如果变量aa已被定义,则aa的值被修改为abcd;若aa尚未定义,则此句命令即可定义新的变量aa,同时为变量aa赋予初始值abcd。
    删除变量:set aa= 此句命令即可删除变量aa。若变量aa已被定义,则删除变量aa;若aa尚未定义,则此句命令为实质意义。
    需要说明的是,批处理中的变量是不区分类型的,不需要像C语言中的变量那样还要区分int、float、char等。比如执行set aa=345后,变量aa的值既可以被视为数字345,也可以被视为字符串345。

  • md

    创建文件夹

  • %

    命令行传递给批处理的参数
    %0 批处理文件本身
    %1 第一个参数
    %9 第九个参数
    %* 从第一个参数开始的所有参数

  • date 和 time

    日期和时间
    date #显示当前日期,并提示输入新日期,按”回车”略过输入
    date/t #只显示当前日期,不提示输入新日期
    time #显示当前时间,并提示输入新时间,按”回车”略过输入
    time/t #只显示当前时间,不提示输入新时间

这里只展示了本次任务中我们需要的指令,更多指令请见:
小德cyj
批处理常用命令总结 - 批处理命令简介

  • 例:
    1
    2
    3
    4
    5
    6
    7
    8
    set test=abcdefghi#设置变量test,并赋值为 = 后面的字符串,即abcdefghij
    echo %test% #显示变量test代表的字符串,即abcdefghij
    echo %test:~6% #显示变量test中第6个字符以后的所有字符,即ghij
    echo %test:~6,3% #显示第6个字符以后的3个字符,即ghi
    echo %test:~0,3% #显示前3个字符,即abc
    echo %test:~-2% #显示最后面的2个字符,即ij
    echo %test:~0,-2% #显示除了最后2个字符以外的其它字符,即abcdefgh

  • 代码:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    @echo off
    #关闭显示
    set dd=%date:~8,2%
    #dd=日期
    set mm=%date:~5,2%
    #mm=月份
    set yy=%date:~0,4%
    #yy=年份
    set Tmm=%TIME:~3,2%
    #Tmm=分钟
    set Thh=%TIME:~0,2%
    #Thh=小时
    set folder="Graduation_project-%yy%-%mm%-%dd%-%Thh%.%Tmm%"
    #folder=Graduation_project-年-月-日-时-分
    md %folder%
    #创建文件夹
    pause
    #暂停,保持cmd窗口,调试时方便信息查看,正常使用时可删除

新建dat文件

  1. 新建一个txt文档
  1. 把我们的代码复制进去
  1. 另存为.bat后缀文件
  1. 完成

如果你想更好的区分文件夹的不同任务,那么我们可以自动在新建文件夹时创建一个readme.txt方便我们进行进度的记录

1
2
3
#在之前的代码最后加入
cd %folder%
echo Summary:>> readme.txt
  • 按照文件个数进行顺序命名:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    for /f "delims=" %%a in ('dir /b ^| find /v /c "&#@"') do (
    set count=%%a
    )
    #读取当前文件夹的文件及文件夹个数
    echo %count%
    #打印出来
    set folder="meeting-%count%"
    #文件夹命名
    md %folder%
    #新建文件夹