本帖最后由 wujunkai 于 2020-8-5 18:28 编辑
所有的文件名都有两个#号吗?
假设所有文件名都带两个#号- @echo off
-
- call:test
- set /P=请理解代码逻辑后自行修改调用
- goto:eof
-
- :del_front
- rem 文件名用%~1传递
- rem 处理过的文件名储存在 %new_file% 中
- set "old_file=%~1"
- for /F "tokens=1,2,3 delims=#" %%a in ("%old_file%") do set "new_file=%%b#%%c"
- goto:eof
-
- :del_middle
- rem 逻辑同上
- set "old_file=%~1"
- for /F "tokens=1,2,3 delims=#" %%a in ("%old_file%") do set "new_file=%%a%%c"
- goto:eof
-
- :del_back
- rem 逻辑同上
- set "old_file=%~1"
- for /F "tokens=1,2,3 delims=#" %%a in ("%old_file%") do set "new_file=%%a#%%b%~x1"
- goto:eof
-
- :test
- rem 测试代码
- set "example=one#two#three.jpg"
- echo 原文件名 %example%
- call:del_front "%example%"
- echo 删去第一部分 %new_file%
- call:del_middle "%example%"
- echo 删去第二部分 %new_file%
- call:del_back "%example%"
- echo 删去第三部分 %new_file%
- goto:eof
复制代码 直接运行肯定不行,请修改后运行 |