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

[文件操作] 批处理如何挑出文件夹里多余的文件?

本帖最后由 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”,没有的话就不改名。

本帖最后由 zm900612 于 2011-4-25 20:13 编辑
  1. @echo off
  2. for /f "delims=" %%a in ('
  3. dir /a /b E:\TDDOWNLOAD\075\*.jpg^|findstr /l /v /g:"E:\TDDOWNLOAD\1.TXT"
  4. ') do del /f /a %%a
  5. pause
复制代码

TOP

个人认为有点困难 等待高手解决吧

TOP

2# zm900612


你怎么把重新命名给漏掉了?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

4# Batcher


哦,对呀...边看电影边解题,没看清题意,不过楼主不怕重名么?

TOP

  1. for /f "delims=" %%a in (a.txt) do (
  2. for %%b in (*%%a*.jpg) do ren "%%b" "%%a.jpg"||ping /n 1 localhost>nul&&ren ren "%%b" "!time::=.!%%a.jpg"
  3. )
复制代码
既然楼主没给例子我就随便写了,不考虑效率、通用性

TOP

虽然没成功,但是还是谢谢2楼的兄弟!

TOP

本帖最后由 msdlya 于 2011-4-26 01:25 编辑
  1. @echo off
  2. for /f %%i in (1.txt) do (
  3. for /f %%a in ('dir /b .\*.jpg^|find "%%i"') do (
  4. ren %%a %%i.jpg
  5. )
  6. )
  7. pause
复制代码

TOP

不知道楼主的+ 是绝对的+  还是相对是+ 文件名不含+ 可去掉代码里的+
另操作前 注意备份原文件
不通用 不处理重复名 或含有重复的
  1. @echo off
  2. CD /D "E:\TDDOWNLOAD\075"
  3. for /f "usebackq delims="%%i in ("E:\TDDOWNLOAD\1.TXT") do (
  4.     ren *+%%i.jpg %%i.jpg
  5. )
  6. pause
复制代码

TOP

重名加个提示就行了

TOP

谢谢8楼
问题成功解决

TOP

返回列表