bat脚本相关技巧
批处理文件
(Batch File,简称 BAT文件)是一种在DOS 下最常用的可执行文件,也称为批处理脚本,是对某对象进行批量的处理,批处理文件的扩展名为bat。
当前盘符/当前bat路径
bat脚本显示当前盘符、当前路径、当前bat脚本路径
当前盘符 %d0、当前路径 %cd%、当前执行命令行 %0、当前bat文件路径 %dp0、当前bat文件短路径 %~dp0
编写代码:
1 | ::关闭echo回显 |
测试效果:
bat脚本运行完后删除自身
1 | rem 批处理运行完后删除自身 |
使用bat批处理删除文件夹和文件
1 | rd /s/q C:\Users\Administrator\Desktop\新建文件夹\mp3 |
windows bat批量创建文件夹与文件
- 一、新建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 - 二、创建文件 nameList.txt
把文件夹名字粘贴到 nameList.txt - 三、创建空文件 muban.docx
备注: 批量创建.bat 、 nameList.txt 、 muban.docx位于同一目录。
Windows批处理(cmd/bat)快速新建文件夹
在进行毕业设计时,随着每日的任务不同,需要新建不同文件夹来区分任务,但手敲新建重命名太过繁琐,经过资料的查找,找到了在windows系统下bat文件的快速新建文件夹的方法,效果展示如下:
本次批处理用到的命令
- echo
打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。
1 | echo on #从下一行开始打开回显 |
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
8set 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文件
- 新建一个txt文档
- 把我们的代码复制进去
- 另存为.bat后缀文件
- 完成
如果你想更好的区分文件夹的不同任务,那么我们可以自动在新建文件夹时创建一个readme.txt方便我们进行进度的记录
1 | #在之前的代码最后加入 |
- 按照文件个数进行顺序命名:
1
2
3
4
5
6
7
8
9
10for /f "delims=" %%a in ('dir /b ^| find /v /c "&#@"') do (
set count=%%a
)
#读取当前文件夹的文件及文件夹个数
echo %count%
#打印出来
set folder="meeting-%count%"
#文件夹命名
md %folder%
#新建文件夹