Board logo

标题: [文件操作] [已解决]重命名文件的批处理怎样过滤文件名? [打印本页]

作者: smss    时间: 2019-6-12 21:05     标题: [已解决]重命名文件的批处理怎样过滤文件名?

本帖最后由 smss 于 2019-6-13 10:06 编辑
  1. @echo off
  2. set k=*.jpg *.webp *.png
  3. for /f "delims=" %%i in ('dir  /b/a-d/s  %cd%\%k%')  do (ren "%%i" "%%~ni")
复制代码
怎样过滤文件名 .9.png 如a.9.png 不重命名

%%~nxi?
作者: Batcher    时间: 2019-6-12 22:02

  1. @echo off
  2. set k=*.jpg *.webp *.png
  3. for /f "delims=" %%i in ('dir /b /a-d /s %cd%\%k%') do (
  4.     if "%%~xi" neq ".9.png" (
  5.         ren "%%i" "%%~ni"
  6.     )
  7. )
复制代码

作者: smss    时间: 2019-6-12 22:26

回复 2# Batcher
不行 .9.png会认为后缀是.png
作者: Batcher    时间: 2019-6-12 22:36

回复 3# smss
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set k=*.jpg *.webp *.png
  4. for /f "delims=" %%i in ('dir /b /a-d /s %cd%\%k%') do (
  5.     set "file=%%~nxi"
  6.     if "!file:~-6!" neq ".9.png" (
  7.         ren "%%i" "%%~ni"
  8.     )
  9. )
复制代码

作者: /zhqsystem/zhq    时间: 2019-6-13 02:20

可以用双for,红色+蓝色区域为追加,蓝色区域可删除
  1. for /f "delims=" %%i in ('dir/a-d/s/b  ".\%k%"')  do (
  2. set "过滤=%%~nxi"
  3. for /f "delims=" %%j in ("%%~ni")do if /i "%%~xj"==".9" set "过滤="
  4. if not defined 过滤 (echo,过滤%%~nxi   %%~dpi)else ren.....
  5. )
复制代码

作者: smss    时间: 2019-6-14 14:29

回复 4# Batcher
能不能再改改 当文件名以time_开头则不修改
例如time_0.png
作者: Batcher    时间: 2019-6-14 15:27

回复 6# smss
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set k=*.jpg *.webp *.png
  4. for /f "delims=" %%i in ('dir /b /a-d /s %cd%\%k%') do (
  5.     set "file=%%~nxi"
  6.     if "!file:~0,5!" neq "time_" (
  7.         if "!file:~-6!" neq ".9.png" (
  8.             ren "%%i" "%%~ni"
  9.         )
  10.     )
  11. )
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2