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

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

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

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

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

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

TOP

发帖前先在论坛内搜索一下
bat小白,请多指教!谢谢!

TOP

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
我这样可以删除单独的指定一个字符,如何删除指定的多个字符

TOP

回复 6# Five66


    谢谢帮忙 ,测试没有反应

TOP

本帖最后由 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
复制代码

TOP

【海康智存】这是我分享的文件~
链接:https://cloud.hiksemi.cn/#share-7K9UY2
提取码:2426
原文件

TOP

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

TOP

【海康智存】这是我分享的文件~
链接:https://cloud.hiksemi.cn/#share-RDLRJD
提取码:8951

TOP

回复 1# QQ00124659


    请选择1个文件夹和3个文件作为例子,打包压缩上传到网盘,我试试。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表