本帖最后由 pcl_test 于 2016-8-14 11:56 编辑
本人没有什么基础,就是突然喜欢上鼓捣批处理。自己胡搞瞎弄了一番。- @echo off&color 3a&set c=0123456789abcdefghijklmnopqrstuvwxyz
-
- title 批量替换文件(文件夹)名
-
- echo.
-
- echo 此批处理可批量替换本文件所在文件夹下所有文件的文件名。
-
- echo.
- echo.&set /p strtemp1= 请输入要替换的文件(文件夹)名字符串(可替换空格):
-
- echo.&set /p strtemp2= 请输入替换后的文件(文件夹)名字符串(删除则直接回车):
-
- for /f "delims=" %%i in ('dir /s /b') do (
- setlocal enabledelayedexpansion
- set "f=%%~nxi"
- set "f1=!f:%strtemp1%=%strtemp2%!"
- if not "%%i"==%0 (
- if not "!f!"=="!f1!" (
- if exist "!f1!" (
- echo 由于!f1!存在同名,!f! 文件名未改 ) else ren "!f!" "!f1!"
- )
- endlocal
- )
- )
复制代码 上面这段代码是我这几天在网上东拼西凑来的,
现在问题是:
1、不能把文件夹和文件的字符同时替换,网上查了下,好像是因为先把父文件夹的字符替换了,所以后面文件的路径就找不到了因此失效。如果要实现文件夹和文件同时替换,代码要怎么修改?
2、好像不能对!号等特殊字符开头的文件和文件夹进行替换,要怎么办?
如果2比较难实现,代码比较麻烦我这种水平也理解不了,可以告诉我问题1的解决方法吗?问题1目前比较重要……
谢谢大家!!新来的如果发帖有什么不对的地方还请包含。 |