[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 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
复制代码
I’m from tomorrow.
Will go to the future.

本帖最后由 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")
复制代码

TOP

返回列表