请写出删除所有文件名含有特定字符文件的bat脚本
时间: 2023-11-26 07:06:01 浏览: 194
@echo off
setlocal enabledelayedexpansion
set "search_string=特定字符" // 将特定字符替换为需要删除的文件名关键字
for /r %%i in (*) do (
set "filename=%%~nxi"
if "!filename!" == "" set "filename=%%~di%%~pi."
if "!filename!" == "." set "filename=%%~di%%~pi.."
set "filename=!filename:\=\\!"
set "filename=!filename:"=\"!"
set "filename=!filename:'=\'!"
echo "!filename!" | find /i "%search_string%" >nul && (
del "%%~fi"
)
)
相关问题
批量去掉文件夹内 文件名最后1个字符 BAT脚本
批量去掉文件夹内文件名最后一个字符的BAT脚本可以通过CMD命令行来实现。下面是一个简单的例子:
```bat
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /b *.*) do (
set "oldName=%%a"
set "newName=!oldName:~0,-1!"
move "!oldName!" "!newName!"
)
echo 操作完成,所有文件名已去掉了最后一个字符。
```
这个脚本的工作原理是:
1. `@echo off` 关闭命令提示符的回显,隐藏命令行的执行过程。
2. `setlocal enabledelayedexpansion` 开启延迟环境变量扩展,以便我们可以直接修改变量内容。
3. `for /f "delims=" %%a in ('dir /b *.*)` 循环遍历当前目录下的所有非目录文件(*.* 表示任意文件类型),将文件名保存到变量 %%a 中。
4. `set "oldName=%%a"` 和 `set "newName=!oldName:~0,-1!"` 分别存储原始文件名和去除最后一个字符的新名称。
5. `move "!oldName!" "!newName!"` 将原文件名替换为新文件名。
6. 最后一条 `echo` 语句用于显示操作已完成。
运行这个脚本前请确保备份重要数据,因为一旦执行就会移动文件。
我想做个bat文件,功能是“为文件夹中全部文件开头特定几行改为特定字符➕读取文件名并把文件中特定内容改为文件名
你可以通过编写一个简单的批处理脚本(.bat文件)来实现这个需求。首先,你需要了解批处理的基本语法,并熟悉一些命令,如`echo`, `find`, `replace`, 和 `for /f`。
下面是创建一个.bat文件的大致步骤:
```batch
@echo off
setlocal enabledelayedexpansion
set "folder_path=%~dp0" // 获取当前脚本所在的目录
set "prefix_char=你要添加的特定字符"
set "search_content=你要替换的具体内容"
set "replacement=文件名"
:: 遍历文件夹内的所有文件
for %%f in ("%folder_path%\*") do (
if exist "%%f" (
:: 打开文件,追加前缀字符
echo(!prefix_char! >> "%%f"
:: 读取文件名
for /f "tokens=*" %%g in ('echo(%%~nf') do (
set "filename=%%g"
:: 替换文件中的特定内容为文件名
(type "%%f" | findstr /r /c:"!search_content!" > nul) && (
set /p "temp=" & set "temp=!filename!"
echo(!temp! >> "%%f"
del "temp.txt" 2>nul
)
)
)
)
:: 提示操作完成
echo 文件处理完毕!
阅读全文