bat命令删除指定文件夹下的文件以及空文件夹

本文介绍了如何使用Windows批处理命令删除指定目录下30天前的文件及空文件夹。通过`forfiles`命令删除指定天数之前的文件,利用`for /f`循环配合`dir`命令删除空文件夹。这些批处理脚本适用于系统维护和清理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.删除指定目录下的文件(指定天数之前的30,30为天数,30天之前的文件)

@echo off  
forfiles /p "D:\new\1027\release\image" /s /m *.* /d -30 /c "cmd /c del @path"  
/p  为路径
/s 递归子目录
/m   "*"   匹配所有的文件和目录
/D [+ | -]{MM/DD/YYYY | dd} 	
使用“MM/DD/YYYY”格式选择最后修改日期大于或等于指定日期(+)或小于或等于指定日期(-)的文件。
也可以选择文件的最后修改日期大于或等于(+)当前日期加上“dd”天,或小于或等于(-)当前日期
如上 /d -30  三十天之前的
/c  在每个文件上执行命令,其中命令是命令字符串,用双引号括起来。
默认命令是“cmd /c echo @file”,它显示文件的名称。

2.删除指定目录下的空文件夹

@echo off   
for /f "tokens=*"  %%i in ('dir /s /b /ad  D:\new\1027\release\image\^|sort|  /r')  do  rd  "%%i"
for /f "tokens=*"  %%i in ('dir /s /b /ad  D:\new\1027\release\OriImage\^|sort|  /r')  do  rd  "%%i"
Tokens=*表示删除每行前面的空格。忽略行首的所有空格。
dir /s /b /ad 显示目录下的所有文件

3.删除指定目录下的30天之前的所有文件和所有的空文件夹

@echo off 
forfiles /p "D:\new\1027\release\image" /s /m *.* /d -30 /c "cmd /c del @path"  
for /f "tokens=*"  %%i in ('dir /s /b /ad  D:\new\1027\release\image\^|sort|  /r')  do  rd  "%%i"
for /f "tokens=*"  %%i in ('dir /s /b /ad  D:\new\1027\release\OriImage\^|sort|  /r')  do  rd  "%%i"
关闭回显
@echo off
打开回显
@echo on

### 回答1: 要用bat脚本批量删除文件夹名字中的指定文字,可以按照以下步骤操作: 1. 首先,打开一个文本编辑器,新建一个bat脚本文件。可以使用任何文本编辑器,如记事本、Notepad++等。 2. 在脚本文件中,使用"for"循环遍历文件夹。可以使用以下命令来获取文件夹列表: ```bash for /d %%i in ("文件夹路径") do ( ) ``` 其中,“文件夹路径”是要操作的文件夹的路径。可以使用相对路径或绝对路径。 3. 在"for"循环的括号内,使用"set"命令来替换文件夹名称中的指定文字。例如,如果要删除文件夹名称中的"指定文字",可以使用以下命令: ```bash set "new_name=%%~ni" set "new_name=!new_name:指定文字=!" ``` 这里将文件夹名称保存在"new_name"变量中,并使用"!"语法将"指定文字"替换为字符串。 4. 使用"rename"命令来重命名文件夹。例如,可以使用以下命令: ```bash rename "%%i" "!new_name!" ``` 这里使用"!"语法来引用变量,并使用"rename"命令来将文件夹重命名为"new_name"变量中的名称。 5. 最后,保存并关闭脚本文件。 请注意,使用bat脚本进行文件夹重命名时,应谨慎操作,以免删除了重要文件夹。 在运行脚本之前,最好在备份系统或测试环境中进行测试,以避免意外损失。 ### 回答2: 可以使用bat脚本批量删除文件夹名字中的指定文字,具体步骤如下: 1. 首先,打开记事本或者其他文本编辑器,创建一个新的bat文件。 2. 在bat文件中,添加如下代码: ```bat @echo off setlocal enabledelayedexpansion set target=指定文字 set folder_path=文件夹路径 for /d %%i in (%folder_path%\*) do ( set "folder=%%~nxi" set "new_folder=!folder:%target%=!" if not "!folder!"=="!new_folder!" ( ren "%%i" "!new_folder!" ) ) pause ``` 3. 在上述代码中,你需要修改`指定文字`为你需要删除的文字,`文件夹路径`为你需要批量删除文件夹的路径。 4. 保存并关闭bat文件。 5. 双击运行bat文件,它将批量删除文件夹名字中的指定文字。 注意事项: - 运行bat文件时,要确保文件夹路径正确,以免删除了其他文件夹- `set folder_path=文件夹路径`中的文件夹路径可以是相对路径或绝对路径,如`set folder_path=C:\folder`或`set folder_path=.\folder`。 - 使用前请注意备份相关数据,以防误操作删除错误的文件夹。 希望以上内容对你有所帮助! ### 回答3: 在BAT脚本中,可以使用一些命令和技巧来实现批量删除文件夹名字中的指定文字。 首先,我们可以使用`for /d`命令来遍历当前目录下的文件夹,然后使用`ren`命令进行重命名操作。 以下是一个示例脚本,用于删除文件夹名字中的指定文字: ```bat @echo off setlocal enabledelayedexpansion set "target=指定文字" set "replacement=" for /d %%d in (*) do ( set "folder=%%~d" set "newFolder=!folder:%target%=%replacement%!" if not "!folder!"=="!newFolder!" ( ren "%%~d" "!newFolder!" ) ) ``` 在脚本中,可以修改`target`变量来指定需要删除的文字。然后,使用`for /d`命令遍历当前目录下的文件夹,并将文件夹名字传递给`ren`命令进行重命名操作。 重命名操作中使用了`!folder:%target%=%replacement%!`的语法,这会将`folder`变量中的`target`内容替换成`replacement`内容。如果文件夹名字发生了改变,则执行`ren`命令进行重命名。 注意,在BAT脚本中,使用`!`而不是`%`来延迟变量解析,以确保在循环中正确使用变量。 这样,运行脚本后,文件夹名字中的指定文字就会被删除了。请确保在运行脚本之前备份重要的文件夹,以免意外删除数据。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值