|
tang0826
新手上路

积分 17
发帖 12
注册 2007-9-11
状态 离线
|
『楼 主』:
[已结]文件移动到含该文件名字符的批处理?
各位老大好。
本人有个KTV歌库需要重新归类,把一个目录下的文件移动到含文件名字符文件夹目录下(目录已批量建好)。
如:
目录名:张学友
歌曲名:张学友-夕阳醉了.wmv
……
张学友-心如刀割.wmv
要求把“张学友-夕阳醉了.wmv……张学友-心如刀割.wmv”等文件移动到张学友目录下。当然还有N个其他歌手的歌曲。
求助各位老大们!!谢谢了。
[ Last edited by HAT on 2008-10-27 at 14:12 ]
|
|
2008-10-25 23:32 |
|
|
bat-zw
金牌会员
      永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
2 楼』:
假设批量建立的目录是在d:\music下
@echo off
for /f "delims=" %%a in ('dir /s /a-d /b d:\*.wmv') do (
for /f "delims=-" %%i in ("%%~na") do move /y "%%a" d:\music\%%i\
)
echo 搞定了!&pause>nul
|

批处理之家新域名:www.bathome.net |
|
2008-10-25 23:59 |
|
|
tireless
银牌会员
    
积分 2025
发帖 1122
注册 2007-9-5
状态 离线
|
『第
3 楼』:
@echo off
cd /d "d:\music\"
for /f "delims=" %%a in ('dir /a:d /b') do (
move /y "%%a*" "%%a" >nul 2>nul
) 以上代码适用于文件不存在于子文件夹中。请问楼主,歌曲文件有在子文件夹中吗?
如果存在于子文件夹中,用下面的:
@echo off
cd /d "D:\music\"
for /f "delims=" %%a in ('dir /a:d /b') do (
for /f "delims=" %%b in ('dir /s /a:-d /b "%%a*" 2^>nul') do (
move "%%b" "%%a" >nul 2>nul
)
) [ Last edited by tireless on 2008-10-26 at 01:47 ]
|
|
2008-10-26 01:16 |
|
|
tang0826
新手上路

积分 17
发帖 12
注册 2007-9-11
状态 离线
|
|
2008-10-26 21:43 |
|
|
tang0826
新手上路

积分 17
发帖 12
注册 2007-9-11
状态 离线
|
『第
5 楼』:
如果该目录下的空歌手目录没有建立,怎么用一个批量文件先建立歌手目录后移动相应文件到相应歌手目录?再次感谢!!
[ Last edited by tang0826 on 2008-10-26 at 22:04 ]
|
|
2008-10-26 22:02 |
|
|
tireless
银牌会员
    
积分 2025
发帖 1122
注册 2007-9-5
状态 离线
|
『第
6 楼』:
疑问:
1.文件有在子文件夹中吗?
2.文件名都是这种规则?
张学友-夕阳醉了.wmv
周杰伦-彩虹.mp3
(短横线 -是全角的?)
|
|
2008-10-26 22:21 |
|
|
tang0826
新手上路

积分 17
发帖 12
注册 2007-9-11
状态 离线
|
『第
7 楼』:
有子文件夹,文件名全都改为了全角短横线的。
谢谢!!
|
|
2008-10-26 22:33 |
|
|
tireless
银牌会员
    
积分 2025
发帖 1122
注册 2007-9-5
状态 离线
|
『第
8 楼』:
@echo off
cd /d "D:\music\"
for /f "delims=-" %%a in ('dir /s /a:-d /b') do (
md "%%~na" 2>nul
move "%%~a*" "%%~na" 2>nul >nul
)
|
|
2008-10-26 23:07 |
|
|
tang0826
新手上路

积分 17
发帖 12
注册 2007-9-11
状态 离线
|
『第
9 楼』:
Quote: | Originally posted by tireless at 2008-10-26 11:07 PM:
[code]@echo off
cd /d "D:\music\"
for /f "delims=-" %%a in ('dir /s /a:-d /b') do (
md "%%~na" 2>nul
move "%%~a*" "%%~na" 2>nul > ... |
|
这段代码没有成功,老大!
|
|
2008-10-27 13:11 |
|
|
tireless
银牌会员
    
积分 2025
发帖 1122
注册 2007-9-5
状态 离线
|
『第
10 楼』:
Re 9 楼
执行结果是什么?替换了其中的 D:\music\ 吗?
|
|
2008-10-27 13:25 |
|
|
tang0826
新手上路

积分 17
发帖 12
注册 2007-9-11
状态 离线
|
『第
11 楼』:
结果是产生一个“%~na”的空目录。
|
|
2008-10-27 13:32 |
|
|
tireless
银牌会员
    
积分 2025
发帖 1122
注册 2007-9-5
状态 离线
|
『第
12 楼』:
请问你替换了其中的 D:\music\ 吗?这个要换成你的那个音乐文件目录。
|
|
2008-10-27 13:38 |
|
|
tang0826
新手上路

积分 17
发帖 12
注册 2007-9-11
状态 离线
|
|
2008-10-27 13:40 |
|
|
tireless
银牌会员
    
积分 2025
发帖 1122
注册 2007-9-5
状态 离线
|
『第
14 楼』:
以下是我做的测试:
执行批处理前的文件分布:
G:\KTV>tree /f
卷 文件 的文件夹 PATH 列表
卷序列号码为 000007C0 02C4:B98C
G:.
│ 周杰伦- 魔杰座-11 稻香.mp3
│
├─2
│ 林俊杰 -江南.wmv
│
└─3
│ 蔡依林-love love love.mp3
│
└─新建文件夹
林俊杰 - - 就是我.mp3
执行批处理后的文件分布:
G:\KTV>tree /f
卷 文件 的文件夹 PATH 列表
卷序列号码为 000007C0 02C4:B98C
G:.
├─2
├─3
│ └─新建文件夹
├─周杰伦
│ 周杰伦- 魔杰座-11 稻香.mp3
│
├─林俊杰
│ 林俊杰 -江南.wmv
│ 林俊杰 - - 就是我.mp3
│
└─蔡依林
蔡依林-love love love.mp3
[ Last edited by tireless on 2008-10-28 at 16:57 ]
|
|
2008-10-27 13:55 |
|
|
tang0826
新手上路

积分 17
发帖 12
注册 2007-9-11
状态 离线
|
『第
15 楼』:
谢谢老大了,把这段代码中的全角"-"替换为半角的"-"就行了。谢谢了
for /f "delims=-" %%a in ('dir /s /a:-d /b') do (
for /f "delims=-" %%a in ('dir /s /a:-d /b') do (
[ Last edited by tang0826 on 2008-10-27 at 14:07 ]
|
|
2008-10-27 14:04 |
|