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

[文件操作] [已解决]批处理怎样根据文本条件移动mp3文件进指定文件夹?

[复制链接]
 楼主| 发表于 2015-3-11 11:59:36 | 显示全部楼层
回复 19# cobat


    100%正确,分别移动1000首歌不到2秒,目前未发现问题,

这音量字符条件足够多了,这所谓"找不到音量字符"是针对音量更低的值如
,14.
,15.
,16.
,17.
类推,这些,13.外的值,还未有见过,有也没有利用价值,因为音量太低了,故把它们丢入x文件夹


你的代码执行效率很高,赞,再次感谢!
 楼主| 发表于 2015-3-11 12:20:36 | 显示全部楼层
音量,-16是技术规定的最大值,不会更大,-17 , -18是不会出现的
发表于 2015-3-11 12:38:56 | 显示全部楼层
回复 11# cobat

if与for可以else,要不明显很多重复执行了,虽然用2>nul屏蔽了回显。
 楼主| 发表于 2015-3-11 13:53:10 | 显示全部楼层
回复 9# pcl_test





    能用,但更爱2楼的,好快,可能是没有显示执行过程,谢谢你!
发表于 2015-3-11 15:23:55 | 显示全部楼层
回复 24# hepeisheng
是这样的,授人以鱼不如授人以渔,我编的代码除了能实现效果,还考虑给想学批处理的小白们作为参考,所以把代码尽量写的显浅且容易修改,如你要增减或修改对应的文件,只要在代码中if语句做相应增减或修改即可
 楼主| 发表于 2015-3-11 15:27:27 | 显示全部楼层
回复 25# pcl_test


    明白,我也有这学修改的想法,谢谢!
 楼主| 发表于 2015-3-11 16:13:57 | 显示全部楼层
回复 19# cobat


   
要移动更低音量的mp3,是把这行的"13"字符加大,和增加对应的文件夹吗?我试过是可行的,


            if %%d geq -16 if %%d leq 13 (
改为
            if %%d geq -16 if %%d leq 20 (
发表于 2015-3-11 18:58:12 | 显示全部楼层
本帖最后由 apang 于 2015-3-11 22:25 编辑
  1. @echo off
  2. for /f tokens^=1^,3-4delims^=^" %%i in (a.txt) do (
  3.         set "file=%%i%%j"
  4.         setlocal enabledelayedexpansion
  5.         for /f "tokens=4delims=," %%a in ("%%k") do set "fd=%%a"
  6.         set /a fd = 118 + !fd:-=-1-!
  7.         if !fd! GEQ 132 set "fd=0x"
  8.         echo,move "!file!" "!fd:~1!"
  9.         endlocal
  10. ) 2>nul
  11. pause
复制代码
 楼主| 发表于 2015-3-11 19:37:12 | 显示全部楼层
回复 29# cobat


    那我就安心改了,完美了,谢谢指教
 楼主| 发表于 2015-3-11 19:40:04 | 显示全部楼层
回复 30# apang


    显示读遍了全部mp3文件,但未能移动一个文件,多谢
发表于 2015-3-12 11:42:41 | 显示全部楼层
回复 32# hepeisheng


    把第8行的 echo, 删掉
 楼主| 发表于 2015-3-12 11:55:11 | 显示全部楼层
回复 33# apang


    只显示请按任意键继续,不干活
发表于 2015-3-12 13:30:38 | 显示全部楼层
回复 34# hepeisheng


    我这里测试没有问题
  1. @echo off
  2. for /f tokens^=3-4delims^=^" %%i in (a.txt) do (
  3.         set "file=%%i"
  4.         setlocal enabledelayedexpansion
  5.         for /f "tokens=4delims=," %%a in ("%%j") do set "fd=%%a"
  6.         set /a fd = 118 + !fd:-=-1-! 2>nul
  7.         if !fd! GEQ 132 set "fd=0x"
  8.         move "!file!" "!fd:~1!"
  9.         endlocal
  10. )
  11. pause
复制代码
 楼主| 发表于 2015-3-12 13:41:05 | 显示全部楼层
回复 35# apang


    这个可以用了,2秒移动完1000首歌,很流畅的样子,检查过全部正确,谢谢你!
 楼主| 发表于 2015-3-12 14:40:19 | 显示全部楼层
if !fd! GEQ 132 set "fd=0x"

把这行的13改更大的数能移动音量值更低的mp3文件,要增加对应的文件夹,我试过是可行的,如改为

        if !fd! GEQ 202 set "fd=0x"
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 15:32 , Processed in 0.019629 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表