批處理系列(11) - 去除指定字符之前或之后的文件名


本篇熟悉"tokens=1-3 delims=.-"結合操作

需要提前調整截取范圍分割字符過濾文件類型文件原名新命名

@echo off
setlocal enabledelayedexpansion
title 去除指定字符之前或之后的文件名  by:小可(xianghongai@gmail.com)
@echo 需要提前調整截取范圍,分割字符,過濾文件,調整文件前后名
rem tokens=有時表示提取全部。
rem tokens=m表示提取第m列。
rem tokens=m,n表示提取第m列和第n列。
rem tokens=m-n表示提取第m列至第n列。
rem tokens=*表示刪除每行前面的空格。忽略行首的所有空格。
rem tokens=m*提取第m列以后的所有字符,星號表示剩余的字符。
rem tokens=m,*提取第m列以后的所有字符,星號表示剩余的字符。
rem delims指明點號、減號、空格為分割符,默認是空格和tab為分割符,delims==及delims=表示不要分割符
for /f "tokens=1-3 delims=.-" %%i in ('dir /b /a-d *.png') do (ren "%%i-%%j.%%k" "%%i.%%k")
pause >nul
exit

作用到子目錄

@echo off
setlocal enabledelayedexpansion
title 去除指定字符之前或之后的文件名  by:小可(xianghongai@gmail.com)
rem 需要提前調整截取范圍,分割字符,過濾文件,文件原名、新命名

cd /d %~dp0

@echo 將 [abc_abc-中文提示.png] 重命名為 [abc_abc.png]
@echo --------------------------------------------------
@echo 影響當前目錄、子目錄帶 - 字符的 png 文件!謹慎操作
@echo 建議只在單獨的新建目錄操作!
@echo --------------------------------------------------
@echo 按Enter鍵繼續,退出直接關閉窗口
pause >nul

for /f "usebackq tokens=1-3 delims=.-" %%a in (`dir /b /a-d *.png`) do (ren "%%a-%%b.%%c" "%%a.%%c")
@echo ...
@echo ================================================== 當前目錄處理完畢
for /f "usebackq delims=" %%i in (`dir /ad /b /s^|sort /r`) do (
  for /f "usebackq tokens=1-3 delims=.-" %%a in (`dir /a-d /b "%%i\*.png"`) do (
    ren "%%i\%%a-%%b.%%c" "%%a.%%c") )
@echo ...
@echo ================================================== 所有子目錄處理完畢
@echo 按Enter鍵退出
pause >nul
exit

轉載保留原文地址和作者名,只為錯誤勘正和信息補充。
版權聲明:自由轉載-非商用-非衍生-保持署名(創意共享3.0許可證)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM