Board logo

标题: [求助]如何根据文件名来复制文件? [打印本页]

作者: zhaojianzeng     时间: 2008-8-3 16:28    标题: [求助]如何根据文件名来复制文件?

本人是做MP3下载的,请高手们帮忙写个下载mp3的工具,具体内容如下: 我的mp3都在 E:\mp3 文件夹里,每首歌曲都已经有了编号(如:1037做你的爱人.mp3),借助这个工具,只要输入编号就可以将歌曲复制到 C:\mp3文件夹里。然后再提示输入要下载的歌曲编号。 我脑子里想的步骤大概的样子就是下面这样: A:屏幕提示:请输入要下载的歌曲的编号 B:操作者输入号码(注:不是全文件名,只输入号码,不输入汉字) C:计算机自动在 E:\mp3 文件夹里查找该歌曲,如果找到就复制到 C:\mp3文件夹里,没有找到就提示:编号错误,请重新输入 D:屏幕提示:下载完成,请输入要下载的歌曲的编号 [ Last edited by lxmxn on 2008-8-6 at 04:46 AM ]

作者: slore     时间: 2008-8-3 17:12
@echo off :start echo. set /p id=请输入要下载的歌曲的编号: echo 正在下载…… for /f "delims=" %%i in ('dir /b E:\mp3\^|findstr "%id%"') do ( echo copy E:\mp3\%%i D:\mp3\ ) echo 下载完成! echo. goto :start

作者: dosyenanjs     时间: 2008-8-3 17:36
@echo off
color 3&echo,
:first
set/p no=   请输入要下载的歌曲的编号:
if exist e:\mp3\%no%*.mp3 (
 xcopy/y e:\mp3\%no%*.mp3 c:\mp3\ >nul
 cls&echo,&echo    下载完成 &goto first
 )
cls&echo,&echo    编号错误,请重新输入&goto first

作者: 23112656     时间: 2008-8-3 18:06
@echo off :start set /p z=请输入要下载的歌曲的编号: dir /a /s E:\mp3\%z%.mp3 & cls if %errorlevel%==0 (echo 正在下载编号:%z%.mp3 & copy /y %z%.mp3 >nul C:\mp3\) else echo 编号错误,请重新输入 & goto start echo 下载成功...回车后继续... echo.&pause>nul goto start

作者: zhaojianzeng     时间: 2008-8-3 18:13
谢谢大家帮忙,我去试试

作者: zhaojianzeng     时间: 2008-8-3 19:06
楼上的朋友,刚才我试过了,2楼的方法总是提示复制成功,其实没有复制;4楼的总试提示输入错误,也不能复制,请帮我修改一下,谢谢

作者: pusofalse     时间: 2008-8-3 19:33
把2楼的代码的echo copy E:\mp3\%%i D:\mp3\ 中的 echo 去掉。

作者: 23112656     时间: 2008-8-3 19:52
Originally posted by zhaojianzeng at 2008-8-3 07:06 PM: 楼上的朋友,刚才我试过了,2楼的方法总是提示复制成功,其实没有复制;4楼的总试提示输入错误,也不能复制,请帮我修改一下,谢谢
晕```是不是你给的路径有错啊?我在我这试着都好的啊.

作者: flyinspace     时间: 2008-8-6 04:09
不能光用 findstr。。 需要完整提取数字id

作者: flyinspace     时间: 2008-8-6 04:10
否则出现 10—111。mp3 101--112。mp3 的时候会拷贝两首歌曲。

作者: dosyenanjs     时间: 2008-8-6 16:27
给你一个较完整的:
@echo off&color 3&echo\
:first
echo,&set/p no= 请输入要下载的歌曲的编号:
cls&if /i exist e:\mp3\%no%*.mp3 (
 for /f "delims=." %%i in ('dir /b e:\mp3\%no%*.mp3') do (
     if /i "%%i" equ "%no%" (xcopy/y "e:\mp3\%%i.mp3" c:\mp3\ >nul
       echo,&echo  正在下载 ^<^< %%i.mp3 ^>^> …… &echo        完成
       ) else (if /i "%%i" geq "%no%a" (xcopy/y "e:\mp3\%%i.mp3" c:\mp3\ >nul
           echo,&echo  正在下载 ^<^< %%i.mp3 ^>^> …… &echo        完成
           ) else (if /i "%%i" leq "%no% " (xcopy/y "e:\mp3\%%i.mp3" c:\mp3\ >nul
               echo,&echo  正在下载 ^<^< %%i.mp3 ^>^> …… &echo        完成
    ) ) ) ) 
 goto first
)
 cls&echo,&echo  编号错误,请重新输入&goto first
避免了楼上提出的问题

作者: zhaojianzeng     时间: 2008-8-7 18:52
不好意思,这两天出门了,今天回来弄好了,就是用2楼的方法去掉echo后,再把歌曲放到“ ”里面就行了,不然遇到有空格的歌曲名就不能下载了,一会去试试11楼的方法,好的话再回来顶你,谢谢各位了