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

[文本处理] [已解决]批处理如何把文件自动移动到特定的文件夹

最近整理歌曲,要按歌手归类,下载了海量的歌曲,下载下来的歌曲都是这样的
比如:

演唱会刘德华喝忘情水.mp3
超级周杰伦耍双节棍.MP3
狂人伍佰的白鸽.mp3
我是刘德华唱开心的马驹.mp3
……
歌手的名字在文件中的位置不固定,比如要把文件名里面含有刘德华3个字的文件,全部自动剪切到  好男人   这个文件夹里面。剪切进去之后,文件名不变。不含有刘德华3个字的文件原地不动。

哪位老大能帮我实现一下,要不我的手就要累死了。万分感谢你。[已解决]

[ 本帖最后由 laojiarenlaile 于 2009-8-20 18:09 编辑 ]
1

评分人数

    • Batcher: 感谢主动给标题标注[已解决]字样PB + 2

  1. @echo off&&setlocal EnableDelayedExpansion
  2. for /f  %%a in ('dir /b *.mp3') do (
  3. call :do "%%a"
  4. )
  5. :do
  6. set c=%1
  7. for /f  "tokens=1 delims=- " %%i in ("%1")  do (
  8. set p=%%i
  9. if not exist "!p!" md !p!
  10. copy "%c%" "!p!\%c%"
  11. )
  12. goto :eof
复制代码
没测试过 不知有没有错

[ 本帖最后由 基拉freedom 于 2009-8-20 12:38 编辑 ]
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

去测试了一下 可以用 放心吧
没看清题目 剪切的话把copy改成replace 文件夹有书名号?那加一句 set p=《!p!》

[ 本帖最后由 基拉freedom 于 2009-8-20 12:48 编辑 ]
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

  2楼的代码要小心使用,因为你在call之后,没有及时终止程序的运行,会多运行一次 :do 后面的代码——虽然实际测试中没有出现错误,但是在复杂的情况下可能会出错。

  把代码改进一下(只把当前目录下的mp3文件放入相应的文件夹中):
  1. @echo off
  2. for /f "delims=" %%i in ('dir /a-d /b *.mp3') do (
  3.     for /f "delims=-" %%j in ("%%i") do (
  4.         md 《%%j》 2>nul
  5.         move "%%i" 《%%j》
  6.     )
  7. )
  8. pause
复制代码
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP


谢谢楼上的提醒
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

能举个例子把刘德华的歌曲剪切出来吗,代码看不懂呀,汗

我学艺不精,汗,就弄个刘德华的例子我就懂了,不知道管理员的代码里面哪些是可以替换的?弄不出来呀。

[ 本帖最后由 laojiarenlaile 于 2009-8-20 16:16 编辑 ]

TOP

  4楼的代码适用于这种情形:mp3的文件名必须以歌手名开头,后接1个或多个段横线字符,最后接其他字符。它的作用是:把当前目录下所有的mp3文件移动到形如“《歌手名》”这样的文件夹中。因此,整理这些文件的时候,无需指定先整理刘德华的再整理周杰伦的,它是自动把所有的mp3都按照歌手名归类了。

  如果你不是全部整理,而是只整理指定几个歌手的mp3文件,请在顶楼明确指出,按照现在的描述,我理解成你是要整理所有的mp3。
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

你好 管理员,我已经把1楼的话整理了,这下描述的应该还算清楚

帮忙看看怎么做。谢谢了

TOP

  只把文件名中含有“刘德华”三个字的mp3文件放入“好男人”文件夹:
  1. @echo off
  2. md 好男人 2>nul
  3. move *刘德华*.mp3 好男人
  4. pause
复制代码
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

返回列表