标题: [文本处理] 【已解决】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 编辑
不知行否.不包括子目录和子目录文件- @echo off&chcp 936
- for %%a in (*) do (
- set oldfile=%%a
- for /f "eol=/ delims=" %%b in ('dir /b "%%a"') do (
- set newfile=%%b
- setlocal enabledelayedexpansion
- rename "!oldfile!" "!newfile:?=!"
- endlocal
- )
- )
-
- for /d %%a in (*) do (
- set oldfile=%%a
- for /f "eol=/ delims=" %%b in ('dir /b "%%a?"') do (
- set newfile=%%b
- setlocal enabledelayedexpansion
- rename "!oldfile!" "!newfile:?=!"
- endlocal
- )
- )
- 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 |