自学的菜鸟 2023-01-10 22:58 采纳率: 61.6%
浏览 17
已结题

bat for循环给文件名添加前缀时,只要含有 [ 字符,就会无限循环

bat for循环给文件名添加前缀时,只要含有 [ 字符,就会无限循环


@echo off
Setlocal Enabledelayedexpansion
for %%i in (*.mp4) do (
    echo "%%i"
    ren "%%i" "[123]""%%i"
)
pause

这段代码执行会一直不断添加前缀[123],经过测试我发现是 [ 字符的问题,请问是什么原因,该如何解决

  • 写回答

1条回答 默认 最新

  • 於黾 2023-01-11 08:30
    关注

    给重命名的文件换个文件夹,不要在本文件夹内操作
    如果是高级语言,肯定是先把要操作的文件名放在一个list里,然后遍历list操作
    而在bat里,你直接遍历文件夹,没有先缓存文件,导致一边遍历,文件夹里的文件一直在变,永远遍历不完
    其实跟[字符无关,是因为[字符加在最前之后,导致排序发生变化,你修改后的文件名永远排在最后,导致永远有新的文件需要处理
    如果你把[删掉,那么文件前面加个1,它排序变得靠前,那么遍历的时候不会遍历到它,就能正常结束

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 1月19日
  • 已采纳回答 1月11日
  • 创建了问题 1月10日

悬赏问题

  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error