中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何根据文件名来复制文件?
作者:
标题: [求助]如何根据文件名来复制文件? 上一主题 | 下一主题
zhaojianzeng
新手上路





积分 10
发帖 4
注册 2008-8-3
状态 离线
『楼 主』:  [求助]如何根据文件名来复制文件?

本人是做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 ]

2008-8-3 16:28
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 2 楼』:  

@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



S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
2008-8-3 17:12
查看资料  发短消息 网志   编辑帖子  回复  引用回复
dosyenanjs
初级用户





积分 22
发帖 11
注册 2008-7-10
状态 离线
『第 3 楼』:  


@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


2008-8-3 17:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
23112656
中级用户





积分 220
发帖 99
注册 2008-6-26
状态 离线
『第 4 楼』:  

@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

2008-8-3 18:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zhaojianzeng
新手上路





积分 10
发帖 4
注册 2008-8-3
状态 离线
『第 5 楼』:  

谢谢大家帮忙,我去试试

2008-8-3 18:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zhaojianzeng
新手上路





积分 10
发帖 4
注册 2008-8-3
状态 离线
『第 6 楼』:  

楼上的朋友,刚才我试过了,2楼的方法总是提示复制成功,其实没有复制;4楼的总试提示输入错误,也不能复制,请帮我修改一下,谢谢

2008-8-3 19:06
查看资料  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 7 楼』:  

把2楼的代码的echo copy E:\mp3\%%i D:\mp3\ 中的 echo 去掉。



心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-8-3 19:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
23112656
中级用户





积分 220
发帖 99
注册 2008-6-26
状态 离线
『第 8 楼』:  



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

晕```是不是你给的路径有错啊?我在我这试着都好的啊.

2008-8-3 19:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
flyinspace
银牌会员





积分 1206
发帖 517
注册 2007-3-25
状态 离线
『第 9 楼』:  

不能光用 findstr。。
需要完整提取数字id



知,不觉多。不知,乃求知
2008-8-6 04:09
查看资料  发短消息 网志   编辑帖子  回复  引用回复
flyinspace
银牌会员





积分 1206
发帖 517
注册 2007-3-25
状态 离线
『第 10 楼』:  

否则出现
10—111。mp3
101--112。mp3
的时候会拷贝两首歌曲。



知,不觉多。不知,乃求知
2008-8-6 04:10
查看资料  发短消息 网志   编辑帖子  回复  引用回复
dosyenanjs
初级用户





积分 22
发帖 11
注册 2008-7-10
状态 离线
『第 11 楼』:  

给你一个较完整的:
@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
避免了楼上提出的问题

2008-8-6 16:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zhaojianzeng
新手上路





积分 10
发帖 4
注册 2008-8-3
状态 离线
『第 12 楼』:  

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

2008-8-7 18:52
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: