标题: [文件操作] 批处理如何挑出文件夹里多余的文件? [打印本页]
作者: boyuboyu 时间: 2011-4-25 19:58 标题: 批处理如何挑出文件夹里多余的文件?
本帖最后由 boyuboyu 于 2011-4-26 00:18 编辑
我有一个文件夹E:\TDDOWNLOAD\075,里面放的是很多个相片,相片都以“身份证号码+姓名”命名,另外有一个文本文档E:\TDDOWNLOAD\1.TXT,里面每一行都是姓名,相片比文本里面的名字多。
现在我如何用文本里面的名字去重新命名对应相片的名字?文本里面没出现的名字,相片文件夹下的多余的相片还保持原来的名字。
例如E:\TDDOWNLOAD\075里面有个文件“41302619840227037X+张晓东.jpg”,“E:\TDDOWNLOAD\1.TXT“里面对应的有“张晓东”这一行的话,就把E:\TDDOWNLOAD\075里面的“41302619840227037X+张晓东.jpg”改名成“张晓东.jpg”,没有的话就不改名。
作者: CrLf 时间: 2011-4-25 20:12
本帖最后由 zm900612 于 2011-4-25 20:13 编辑
- @echo off
- for /f "delims=" %%a in ('
- dir /a /b E:\TDDOWNLOAD\075\*.jpg^|findstr /l /v /g:"E:\TDDOWNLOAD\1.TXT"
- ') do del /f /a %%a
- pause
复制代码
作者: 冷玉公子 时间: 2011-4-25 20:14
个人认为有点困难 等待高手解决吧
作者: Batcher 时间: 2011-4-25 20:16
2# zm900612
你怎么把重新命名给漏掉了?
作者: CrLf 时间: 2011-4-25 20:24
4# Batcher
哦,对呀...边看电影边解题,没看清题意,不过楼主不怕重名么?
作者: CrLf 时间: 2011-4-25 20:30
- for /f "delims=" %%a in (a.txt) do (
- for %%b in (*%%a*.jpg) do ren "%%b" "%%a.jpg"||ping /n 1 localhost>nul&&ren ren "%%b" "!time::=.!%%a.jpg"
- )
复制代码
既然楼主没给例子我就随便写了,不考虑效率、通用性
作者: boyuboyu 时间: 2011-4-26 00:20
虽然没成功,但是还是谢谢2楼的兄弟!
作者: msdlya 时间: 2011-4-26 01:20
本帖最后由 msdlya 于 2011-4-26 01:25 编辑
- @echo off
-
- for /f %%i in (1.txt) do (
-
- for /f %%a in ('dir /b .\*.jpg^|find "%%i"') do (
- ren %%a %%i.jpg
- )
-
- )
- pause
复制代码
作者: terse 时间: 2011-4-26 03:06
不知道楼主的+ 是绝对的+ 还是相对是+ 文件名不含+ 可去掉代码里的+
另操作前 注意备份原文件
不通用 不处理重复名 或含有重复的- @echo off
- CD /D "E:\TDDOWNLOAD\075"
- for /f "usebackq delims="%%i in ("E:\TDDOWNLOAD\1.TXT") do (
- ren *+%%i.jpg %%i.jpg
- )
- pause
复制代码
作者: applba 时间: 2011-4-26 05:14
重名加个提示就行了
作者: boyuboyu 时间: 2011-4-26 10:17
谢谢8楼
问题成功解决
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |