Board logo

标题: [文本处理] 【已解决】BAT脚本批量删除文件名中的特殊字符 [打印本页]

作者: QQ00124659    时间: 2023-12-22 22:01     标题: 【已解决】BAT脚本批量删除文件名中的特殊字符

本帖最后由 QQ00124659 于 2023-12-23 16:43 编辑

比如:文件夹名为:已☀辅导费✅ 发多少☛ 佛挡杀佛【大风 ~阿帆☆阿帆★下,或者文件名为已☀辅导费✅ 发多少☛ 佛挡杀佛【大风 ~阿帆☆阿帆★.txt
几百个文件夹和文件分别包含特殊字符:☀,✅,☛,【,~☆,★等等,如何批处理把文件夹名和文件名中的特殊字符删除
作者: Batcher    时间: 2023-12-22 22:14

回复 1# QQ00124659


    请选择1个文件夹和3个文件作为例子,打包压缩上传到网盘,我试试。
作者: QQ00124659    时间: 2023-12-22 22:42

【海康智存】这是我分享的文件~
链接:https://cloud.hiksemi.cn/#share-RDLRJD
提取码:8951
作者: QQ00124659    时间: 2023-12-22 22:51

【海康智存】这是我分享的文件~
链接:https://cloud.hiksemi.cn/#share-CK2Q7J
提取码:9717
改后效果
作者: QQ00124659    时间: 2023-12-22 22:53

【海康智存】这是我分享的文件~
链接:https://cloud.hiksemi.cn/#share-7K9UY2
提取码:2426
原文件
作者: Five66    时间: 2023-12-23 05:21

本帖最后由 Five66 于 2023-12-23 05:40 编辑

不知行否.不包括子目录和子目录文件
  1. @echo off&chcp 936
  2. for %%a in (*) do (
  3. set oldfile=%%a
  4. for /f "eol=/ delims=" %%b in ('dir /b "%%a"') do (
  5. set newfile=%%b
  6. setlocal enabledelayedexpansion
  7. rename "!oldfile!" "!newfile:?=!"
  8. endlocal
  9. )
  10. )
  11. for /d %%a in (*) do (
  12. set oldfile=%%a
  13. for /f "eol=/ delims=" %%b in ('dir /b "%%a?"') do (
  14. set newfile=%%b
  15. setlocal enabledelayedexpansion
  16. rename "!oldfile!" "!newfile:?=!"
  17. endlocal
  18. )
  19. )
  20. pause
复制代码

作者: QQ00124659    时间: 2023-12-23 08:27

回复 6# Five66


    谢谢帮忙 ,测试没有反应
作者: QQ00124659    时间: 2023-12-23 09:50

echo off
setlocal enabledelayedexpansion

set "target=★"  # 设置要删除的特定字符

for /r %%i in (*) do (
    set "filename=%%~nxi"
    set "newname=!filename:%target%=!"
    if not "!filename!"=="!newname!" (
        ren "%%i" "!newname!"
    )
)

for /r %%i in (.) do (
    set "foldername=%%~nxi"
    set "newfoldername=!foldername:%target%=!"
    if not "!foldername!"=="!newfoldername!" (
        ren "%%i" "!newfoldername!"
    )
)
pause
我这样可以删除单独的指定一个字符,如何删除指定的多个字符
作者: 77七    时间: 2023-12-23 14:33

发帖前先在论坛内搜索一下

作者: 13429258876    时间: 2024-3-14 15:00

回复 8# QQ00124659 完美解决,感谢!!




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