无忧启动论坛

标题: 求精通批处理的各位大侠帮忙指导个批处理 [打印本页]

作者: fukystone    时间: 2013-9-16 00:03
标题: 求精通批处理的各位大侠帮忙指导个批处理
需求:近期整理硬盘,发现了大量mp3文件,希望能建目录分类一下。
要求:
1、mp3的文件名格式为*** - ###.mp3,其中***和###中有可能带空格
2、希望根据***来建立目录,然后把同名(***)的文件移动到该目录(或者拷贝进去也行)
3、一个或多个批处理都行
以上,自己试了一下,搞不定啊(尤其对于带空格的),求哪位大侠帮忙,拜谢
作者: x9tian    时间: 2013-9-21 17:30

首先说下,我自己没试, 如果*** 名中间有空格的话,可能歌手名不全。
::思路楼主说以-为分格符,可能存在空格,所以都添加了, for 语句默认取分截符号的前置所以没有tokens,
::严谨点的建议用变量延迟,把那些有符号的歌手中整理从纯文字

  1. @echo off
  2. pushd "%~0"
  3. for /f "delims=- " %%i in ('dir /a-d/b/s *.mp3') do (
  4. :: 移动MP3文件,移动失败则创建文件夹再移
  5. ::%%~ni 抖去路径名
  6.   move /y %%i*.mp3  .\%%~ni\ || md .\%%~ni\ &&move /y  %%i*.mp3  .\%%~ni\

  7. )
复制代码

作者: terse    时间: 2013-9-26 16:13
本帖最后由 terse 于 2013-9-26 16:25 编辑
@echo off
set ph=f:\mp3
pushd "%ph%\"
for /f "delims=" %%i in ('dir /a-d/b/s *-*.mp3') do (
    for /f "delims=-" %%j in ("%%~ni") do (
        md "%%~dpi\%%j" 2>nul
        move "%%i" "%%~dpi\%%j"
    )
)
pause
        Terse发表于:  2013-09-26  16:25


作者: fukystone    时间: 2013-9-30 12:46
x9tian 发表于 2013-9-21 17:30
首先说下,我自己没试, 如果*** 名中间有空格的话,可能歌手名不全。
::思路楼主说以-为分格符,可能存 ...

多谢,搞定了。无忧真是卧虎藏龙啊
3楼的也可以
作者: fukystone    时间: 2013-9-30 12:47
terse 发表于 2013-9-26 16:13

多谢,搞定了。无忧真是卧虎藏龙啊。
你的和2楼的都试了,都能达到要求
作者: 月光海洋    时间: 2013-9-30 14:06
有一段时间没看到F大了、国庆节快乐




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3