[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 【已解决】用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图片
不管能不能成,都感谢每一个帮助回帖的大佬们,拜谢

代码未经测试,请备份好源文件,以免出现不可挽回的损失:
  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
复制代码

TOP

回复 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

TOP

回复 3# gujiayi


   经测试,可以套用

TOP

返回列表