Board logo

标题: [文件操作] 【已解决】用bat批量删除文件指定字符后所有后缀 [打印本页]

作者: gujiayi    时间: 2021-12-19 12:41     标题: 【已解决】用bat批量删除文件指定字符后所有后缀

本帖最后由 gujiayi 于 2021-12-19 14:38 编辑

各位大佬好,我是一个纯小白,需要如图帮助,初衷是为了整理我的图片资料库和文件适配
我看过batcher版主发的帖子:批处理字符串、文本常见操作之高效删除包含指定字符串的行
https://mp.weixin.qq.com/s?__biz=MzIxMzU1MDcyMA==&mid=2247483790&idx=1&sn=74e9670cf69e6883967c6855be154e7b&chksm=97b45261a0c3db77261469b91a0738d63aac8e297c0b4e1802c4a81a35399465673742b5dca5&scene=21#wechat_redirect
但是没有看懂,我复制下来照着做无法实现,首先建立A/b.bat就出现问题,系统提示无法找到路径
复制了版主的代码到txt
@echo off
set "KeyStr=BatHome"
set "FileLog=ListDelete.log"
(for /f "tokens=1 delims=:" %%i in ('findstr /s "%KeyStr%" *.txt') do (
    echo %%i
    del /f /q "%%i"
))>"%FileLog%"
之后创建了随机两个两个txt文件,双击运行没有反应

我先在的问题是这样的,根文件夹下有很多的子文件夹,每个子文件夹里面都有“前缀 by 后缀.jpg”的一个图片jpg文件,现在需求把by开始后面的字符全部删掉。只保留前缀,如果可以做高级点就是我直接把bat放在根文件夹下,双击,每个子文件夹下面都会自动把by及后面的后缀删掉,得到无后缀的jpg图片
不管能不能成,都感谢每一个帮助回帖的大佬们,拜谢
作者: qixiaobin0715    时间: 2021-12-19 13:48

代码未经测试,请备份好源文件,以免出现不可挽回的损失:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('dir /s /b /a-d *.jpg') do (
  4.     set "str=%%~na"
  5.     set "str=!str:by=/!"
  6.     for /f "delims=/" %%i in ("!str!") do ren "%%a" "%%i%%~xa"
  7. )
  8. pause
复制代码

作者: gujiayi    时间: 2021-12-19 14:36

回复 2# qixiaobin0715


    这个代码可以用,很完美,十分感谢,我还有个小问题,如果我要更换需要修改的文件类型,是不是只要动如下两个地方就可以了

@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /s /b /a-d *在此输入文件后缀名') do (
    set "str=%%~na"
    set "str=!str:在此输入需要删除的字符样式=/!"
    for /f "delims=/" %%i in ("!str!") do ren "%%a" "%%i%%~xa"
)
pause
作者: gujiayi    时间: 2021-12-19 15:01

回复 3# gujiayi


   经测试,可以套用




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2