Board logo

标题: [文件操作] 批处理命令,改文件名字 [打印本页]

作者: netdzb    时间: 2020-5-31 14:09     标题: 批处理命令,改文件名字

untitled-1.png
untitled-2.png
untitled-3.png
untitled-4.png
untitled-5.png
untitled-6.png

改成
当前日期-1.png
也就是 2020-05-31-1.png
          2020-05-31-2.png
          2020-05-31-3.png
......
作者: smss    时间: 2020-5-31 16:27

本帖最后由 smss 于 2020-5-31 16:28 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ('dir /a-d/b *.bmp,*.jpg,*.gif,*.png') do set m=%%~ni&ren "%%i" "!date:~0,4!-!date:~5,2!-!date:~8,2!-!m:~-1!%%~xi"
  3. echo 批量重命名完成!
  4. pause
复制代码
  1. @echo off&setlocal enabledelayedexpansion&set n=0
  2. for /f "delims=" %%i in ('dir /a-d/b *.bmp,*.jpg,*.gif,*.png') do set /a n+=1&ren "%%i" "!date:~0,4!-!date:~5,2!-!date:~8,2!-!n!%%~xi"
  3. echo 批量重命名完成!
  4. pause
复制代码
2套你试试
作者: netdzb    时间: 2020-5-31 16:36

回复 2# smss

我去试试看,谢谢!
作者: netdzb    时间: 2020-5-31 17:16

本帖最后由 netdzb 于 2020-5-31 17:21 编辑

回复 2# smss

set m=%%~nx
echo %m%

为啥我想调试一下却看不到%m%的输出?
utitled-1,untile-2,untitled-3的按日期改名,btitled-1,btitled-2,btitled-3的不改名,
应该怎么写?

你这个只要和untitled长度一样的都会改名字吧,我的需求是只要改untitled相关的图片。
作者: yhcfsr    时间: 2020-5-31 18:58

本帖最后由 yhcfsr 于 2020-5-31 19:03 编辑
  1. @echo off
  2. set "day=%date:/=-%"
  3. set "day=%day:~,10%"
  4. for /r %%a in (*.png) do (
  5.         set "name=%%~na"
  6.         setlocal enableDelayedExpansion
  7.         set name=!name:*-=!
  8.         echo;ren "%%a" "%day%-!name!%%~xa"
  9.         endlocal
  10. )
  11. pause
复制代码
试运行,看运行信息,如果无误,将第10行的"echo;"删除后,再运行即可生效.
作者: Batcher    时间: 2020-5-31 21:44

回复 4# netdzb


    不是。因为你顶楼的描述并未说出这个需求,所以2楼的代码里面也没有写这部分的功能。跟文件名长度没关系。
作者: Batcher    时间: 2020-5-31 21:50

回复 1# netdzb
  1. @echo off
  2. for /f "delims=" %%i in ('powershell -c "Get-Date -UFormat '%%Y-%%m-%%d'"') do (
  3.     set "SysTS=%%i"
  4. )
  5. for /f "tokens=1-2 delims=-" %%i in ('dir /b /a-d "untitled-*.png"') do (
  6.     ren "%%i-%%j" "%SysTS%-%%j"
  7. )
复制代码





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