标题: [文本处理] 【已解决】求助完善“批量删除/去除文件名中指定的字符串”的批处理代码 [打印本页]
作者: lijinan 时间: 2016-1-16 22:00 标题: 【已解决】求助完善“批量删除/去除文件名中指定的字符串”的批处理代码
本帖最后由 lijinan 于 2016-4-9 12:44 编辑
- :: 本批处理查找当前目录下文件并删除文件名中指定的字符串.
- @echo off
- color 1f
- cd /d "%~dp0"
- echo %date:~0,10% %time:~0,8%
- :loop1
- set suffix=
- set /p suffix=输入要查找的后缀名:
- if not defined suffix echo 未输入后缀名 & goto loop1
- :loop2
- set find_string=
- set /p find_string=输入要查找的字符串:
- if not defined find_string echo 未输入需要查找的字符串! & goto loop2
- set replace_string=
- for /r .\ %%a in ("*.%suffix%") do (
- set "str=%%~na"
- setlocal enabledelayedexpansion
- set "str=!str:%find_string%=%replace_string%!"
- rename "%%~dpa%%~na.%suffix%" "!str!%%~xa"
- endlocal
- )
- goto end
- :: 结束程序
- :end
- echo.
- echo 任意键退出!
- pause >nul 2>nul
- exit
复制代码
存在问题:
(1)遇到!退出;
(2)有些字符被替换为空格。
作者: WHY 时间: 2016-1-17 15:44
本帖最后由 WHY 于 2016-1-17 15:47 编辑
- for /f "delims=" %%a in ('dir /b /a-d /s "*.%suffix%"') do (
- set "str=%%~na"
- setlocal enabledelayedexpansion
- for %%i in ( "!str:%find_string%=%replace_string%!") do (
- endlocal
- rename "%%a" "%%~i%%~xa"
- )
- )
复制代码
作者: /zhqsystem/zhq 时间: 2016-1-18 01:19
本帖最后由 /zhqsystem/zhq 于 2016-1-18 01:50 编辑
回复 1# lijinan
水一个
- @echo off&(color 0e)
- if not defined n set "n=0"
- set/a "n+=1"
- if %n% geq 2 (set "#exe#=ren")else (set "#exe#=echo")
- if not defined #suffix# set/p "#suffix#=输入要查找的后缀名:"
- if not defined #find_string# set/p "#find_string#=输入要查找并替换的文件名:"
- for /f "delims=" %%i in ('dir/a-d/b/l/on ".\*%#find_string#%*.%#suffix#%"')do if /i not "%%~nxi"=="%~nx0" (
- set "#name#=%%~ni"
- for /f "delims=" %%j in ("%#find_string#%")do (
- call set "#name#=%%#name#:%%j=%%"
- call %%#exe#%% ".\%%~nxi" "%%#name#%%%%~xi"
- if /i "%#exe#%"=="echo" (call %%#exe#%% ".\%%~nxi" "%%#name#%%%%~xi")>>".\数据验证.txt"
- )
- )
- echo,[仔细效验数据]任意键后重新命名,关闭则退出
- pause
- call "%~f0"
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |