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

[文件操作] 根据文件名中指定字符前面的前缀字符串/关键字将文件移动到以该字符串命名的文件夹里

本帖最后由 pcl_test 于 2018-4-12 12:39 编辑

例如有名为a-1.jpg a-2.jpg b-1.jpg b-2.jpg等图片,希望按照名称将名称中除数字以外相同的文件移动到一个新建的文件夹里,文件夹的名称为各个文件名字的公共部分,对于例子:就是把a-1.jpg a-2.jpg移动到一个新建的名为a的文件夹里,将b-1.jpg b-2.jpg移动到名为b的文件夹里。

谢谢各位!!

回复 5# 慕梓酉

源代码第一行加入
   
  1. (2>nul md TMP_TMP)&&move *-*-* TMP_TMP
复制代码


然后分开处理,方法和上边的原理相同。

TOP

回复  慕梓酉
狗屁不通 发表于 2012-8-26 17:23

谢谢您,还有个小问题想请教下,比如当文件的名字是a-b-1.jpg我想把它放到a-b中,但是如果直接按-切分a-b-1.jpg会被存放在a中,怎样作才能知识别数字前面的“-”呢?或者可不可以把文件名字中非数字前面的“-”替换成比如“.”在进行之前的分类操作呢?
谢谢您,还望您指教!

TOP

回复 3# 慕梓酉

  1. @echo off
  2. for /f "delims=-" %%i in ('dir/b/o-n') do (
  3. md %%i 2>nul
  4. move %%i* %%i
  5. )
复制代码

TOP

您好,可能是我表达不清楚,之前的a,b只是举个例子,实际上可能还有c,d...,其实想做的是把文件夹中所有文件根据他们的名字自动分类,并移动到相应的文件夹中。而这些文件夹是按照文件的名字自动生成的,而非已经存在,数量比较多也不方便手动指定。
比如说扫描到有a-1.jpg就把它放到以文件名字减去其中数字为名的文件夹中,具体就是根据a-1生成a这个文件夹,然后把a-1.jpg放进去,再继续扫描,扫描到b-1.jpg建立文件夹b,并将b-1放到b中,有扫描到b-2.jpg放到b中,扫描到a-2.jpg放到a中...直至处理完所有文件为止。

TOP

  1. md a;b
  2. copy a-*.jpg a\
  3. copy b-*.jpg b\
复制代码

TOP

返回列表