Board logo

标题: [文件操作] bat筛选重命名文件,求助! [打印本页]

作者: vince    时间: 2019-6-27 11:12     标题: bat筛选重命名文件,求助!

想实现手动输入文件名重命名文件,且第二次重命名文件不会对其它文件的名字更改。
如图,
我第一次重命名45.raw后,第二次重命名Raw1_20190627_110111_32655.raw这个文件时会出现报错。
求大神帮忙改一下。
  1. @echo off
  2. echo CapImage
  3. adb shell input keyevent 25
  4. timeout /T 3
  5. adb pull /data/camera "D:\1_Working\Robusta2Play\2019-06-26 & Robusta2Play Flare test\NTKL4F0017\Filter 1\front_12A10_Ofilm"
  6. timeout /T 1
  7. adb shell rm -rf /data/camera/*
  8. ::------批量重命名------
  9. setlocal enabledelayedexpansion
  10. set /p name=设置文件名(name):
  11. for /f "delims=" %%i in ('dir /b *.raw') do (ren "%%i" "%name%.raw")
  12. timeout 2
  13. call Ren.bat
复制代码

作者: miqilaosu    时间: 2019-6-27 11:41

本帖最后由 miqilaosu 于 2019-6-27 11:54 编辑
  1. ::------批量重命名------
  2. setlocal enabledelayedexpansion
  3. set /p "name=设置文件名(name):"
  4. set n=1
  5. for /f "delims=" %%i in ('dir /b *.raw') do (
  6. set  /a n+=1
  7. ren "%%i" "%name%!n!.raw")
  8. timeout 2
  9. call Ren.bat
复制代码
你用FOR找到的raw,肯定不只一个,你都重命名一个肯定会提示重名啊,你错就错在两个以上的文件指定命名成同文件名了,所以如果加排序会好些,但 不知道你具体要求,或者把输入过程放到FOR循环里边,每次输入
  1. for /f "delims=" %%i in ('dir /b *.raw') do (set /p "name=设置文件名(name):"&ren "%%i" "%name%!n!.raw")
复制代码





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