标题: [求助]如何根据文件名来复制文件?
[打印本页]
作者: 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楼的方法,好的话再回来顶你,谢谢各位了