bat输入路径处理文件
一、使用到的内容
- 获取键盘输入
- 判断输入路径是否有效
- 批量删除文件
- 获取路径文件夹名字
- 对文件名进行重命名
- 复制移动文件
二、读取键入参数
使用 set /p 命令来获取用户的输入
1 | @echo off |
终端会先给出一个提示,然后接收输入,当敲入回车后,输入的行内容会被赋值给 name ,但不包括换行。
三、判断路径有效性
根据用户输入路径来判断其有效性,有效则下一步,无效则重新输入
- 判断存在性的代码参考:
1
2
3IF EXIST %DIR%\.svn (
DEL /S %DIR%\.svn
)
BAT循环判断,通过goto跳转来重复输入
1 | @ECHO OFF |
将以上两个配合起来即可完成输入判断功能!
四、批量删除文件夹下文件
注 bat 批处理 解决中文乱码 :将文件以ANSI格式保存
删除文件夹下的文件的操作:
使用del命令,单纯的删除文件操作,如下:
1 | del /f /s /q C:UsersdellAppDataLocalTemp*.* |
- 其他文件处理参考:
删除文件夹操作:
使用rd命令,删除空文件夹,如下:
1 | rd /s /q C:UsersdellAppDataLocalTempA |
删除文件和文件夹操作:
使用的是del命令+rd命令,先删除文件,在进入相应文件夹删除文件夹下的文件夹,如下:
1 | del /f /s /q C:UsersdellAppDataLocalTemp*.* |
每隔1000s执行一次删除temp文件下的所有文件及文件夹。代码如下:
1 | @echo off |
删除当前所有子目录下的所有jpeg文件:
1 | @echo off |
五、获取当前路径文件名
方法一(使用中)、BAT 获取父文件名
获取批处理文件的父文件夹非常简单:
1 | @echo off |
对于文件路径的父级,根据问题:
1 | @echo off |
方法二、BAT 获取当前文件夹的文件名
1 | @echo off |
选项语法:
语法 | 说明 |
---|---|
~I | 删除任何引号(“),扩充 %I |
%~fI | 将 %I 扩充到一个完全合格的路径名 |
%~dI | 仅将 %I 扩充到一个驱动器号 |
%~pI | 仅将 %I 扩充到一个路径 |
%~nI | 仅将 %I 扩充到一个文件名 |
%~xI | 仅将 %I 扩充到一个文件扩展名 |
%~sI | 扩充的路径只含有短名 |
%~aI | 将 %I 扩充到文件的文件属性 |
%~tI | 将 %I 扩充到文件的日期/时间 |
%~zI | 将 %I 扩充到文件的大小 |
%~$PATH:I | 查找列在路径环境变量的目录,并将 %I 扩充到找到的第一个完全合格的名称。如果环境变量名未被定义,或者没有找到文件,此组合键会扩充到空字符串 |
组合修饰符:
修饰符 | 说明 |
---|---|
%~dpI | 仅将 %I 扩充到一个驱动器号和路径 |
%~nxI | 仅将 %I 扩充到一个文件名和扩展名 |
%~fsI | 仅将 %I 扩充到一个带有短名的完整路径名 |
%~dp$PATH:i | 查找列在路径环境变量的目录,并将 %I 扩充 |
%~ftzaI | 将 %I 扩充到类似输出线路的 DIR |
获取当前目录的绝对路径: 目录中有空格也可以加入””避免找不到路径
1 | echo 当前盘符:%~d0 rem -- C |
六、复制和重命名文件
创建副本并重命名
1 | @echo off |
在文本文档里输入rename命令(即:ren 原文件名 后文件名):
1 | @echo off |
七、其他知识点
获取文件夹下所有文件的路径名称并导出到txt文件中
1 | dir/s/b > 1.txt |
bat批处理 if 命令示例详解
if,正如它E文中的意思,就是“如果”的意思,用来进行条件判断。翻译过来的意思就是:如果符合某一条件,便执行后面的命令。
主要用来判断:
1、两个“字符串”是否相等;
2、两个数值是大于、小于、等于,然后执行相应的命令。
当然还有特殊用法,如结合errorlevel:if errorlevel 1 echo error
或者结合defined(定义的意思):if defined test (echo It is defined) else echo It isn’t defined
IF命令示例详解
CMD快速进入当前目录
由于需要经常需要从cmd中进入当前工作目录,每次手工输入太繁琐了,于是写了以下bat文件
1 | :: 防止中文乱码 |
说明:本文是收集参考文档,以方便查看
信息链接:
欢迎到公众号来唠嗑: