吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1390|回复: 5
收起左侧

[求助] 【已解决】求各位师傅指导,写个依次批量搜索、复制、重命名的bat脚本

[复制链接]
jullly 发表于 2022-4-26 18:22
本帖最后由 jullly 于 2022-4-27 10:24 编辑

求各位师傅指导,写个依次批量搜索、复制、重命名的bat脚本
第1步:根据“搜索名.txt”里的多个文件名,批量搜索老文件夹“D:\old”
第2步:将搜索到的文件,复制到新文件夹“D:\new”
第3步:根据“新名.txt”里的多个文件名,来批量重命名,新文件夹里刚刚复制过去的文件

我写了第1、2步,运行成功了:
@echo off
for /f %%i in (搜索名.txt) do (if exist "D:\old\%%i" copy "D:\old\%%i" "D:\new")

但第3步运行失败了:
for /f %%j in (新名.txt) do ren "D:\new\%%i" "%%j"

求各位师傅指导,应该怎么编写第3步


多谢各位师傅指出我的错误,考虑到“搜索名.txt”里有重复文件的原因,最终我使用嵌套解决了问题,完整版如下:
@echo off
for /f %%i in (搜索名.txt) do (
        if exist "D:\old\%%i" (
                copy "D:\old\%%i" "D:\new"
                for /f %%j in (新名.txt) do ren "D:\new\%%i" %%j
)
)

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| jullly 发表于 2022-4-26 18:29
补充:
“搜索名.txt”里的内容(注意有重复的文件):
1.jpg
2.jpg
1.jpg

对应“新名.txt”里的内容:
a.png
b.png
c.png
平淡最真 发表于 2022-4-26 20:17
第三步,那个%%i属于未定义吧,前面那个for结束了。
一个对应一个来改名,批处理实现比较难吧,因为for好像是必须全部遍历的,没有break这种语法

免费评分

参与人数 1热心值 +1 收起 理由
jullly + 1 我很赞同!

查看全部评分

ericwise 发表于 2022-4-26 22:30
头像被屏蔽
xiadongming 发表于 2022-4-26 22:51
提示: 作者被禁止或删除 内容自动屏蔽
Monitor 发表于 2022-4-27 08:54
@echo off
for /f %%i in (搜索名.txt) do (if exist "D:\old\%%i" copy "D:\old\%%i" "D:\new")

上面的 i 不能用到下面吧?

for /f %%j in (新名.txt) do ren "D:\new\%%i" "%%j"
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 13:34

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表