找回密码
 注册
快捷导航
查看: 6450|回复: 9

【求助】bat题目

[复制链接] |自动提醒
阅读字号:

42

回帖

0

积分

66

资产值

入门会员 Rank: 1

注册时间
2007-9-28
发表于 2008-11-5 15:59:33| 字数 82| - 中国–广西–桂林 中移铁通 | 显示全部楼层 |阅读模式
求收集某个文件夹中所有子目录中的某一类型文件移动到另一个指定目录的写法
e.g.我D盘下面有很多音乐文件散布在各个文件夹中,我需要统一起来剪切到另一个我想要的文件夹中

2670

回帖

1

积分

1万

资产值

初级会员 Rank: 1

注册时间
2004-2-16
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2008-11-5 16:11:14| 字数 83| - 中国–上海–上海 电信 | 显示全部楼层
@echo off
xcopy d:\aaa\*.mp3  e:\bbb  /s /a  
del d:\aaa\*.mp3    /s /q

[ Edited by  小松鼠 on 2008-11-5 16:59 ]
回复 支持 反对

使用道具 举报

356

回帖

0

积分

1525

资产值

入门会员 Rank: 1

注册时间
2006-3-13
发表于 2008-11-5 16:57:08| 字数 9| - 中国–湖北–十堰 电信 | 显示全部楼层
这个方便,学习了!
回复 支持 反对

使用道具 举报

4万

回帖

283

积分

6175

资产值

至尊会员III Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2006-9-6
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2008-11-5 16:57:55| 字数 5| - 中国–广东–阳江 电信 | 显示全部楼层

回复 #2 小松鼠 的帖子

强,学习了
回复 支持 反对

使用道具 举报

765

回帖

9

积分

1341

资产值

黄金会员 Rank: 3Rank: 3Rank: 3

注册时间
2008-10-22
发表于 2008-11-5 23:36:52| 字数 46| - 中国–上海–上海 东方有线 | 显示全部楼层
这样是不好用的~!

[ Edited by  Feiyue_2008 on 2008-11-5 23:39 ]
我不能等你一年零一个月了,我也不能等你到二十五岁了,但是我会等你一辈子... ...
回复 支持 反对

使用道具 举报

bush-911 - 助理站长

6万

回帖

678

积分

17万

资产值

天下无敌I Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

注册时间
2007-5-15
银牌荣誉勋章(注册10年以上会员)年全勤勋章2022铜牌荣誉勋章(注册8年以上会员)月全勤勋章年全勤勋章2023年全勤勋章2024
发表于 2008-11-5 23:44:34| 字数 31| - 中国–重庆–重庆 电信 | 显示全部楼层
2楼的有意思,学习下。
另外,请教下后面的参数S、A、Q是啥意思
学学老山东,看看老站长
回复 支持 反对

使用道具 举报

1367

回帖

2

积分

6197

资产值

初级会员 Rank: 1

注册时间
2003-10-21
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2008-11-6 00:44:35| 字数 36| - 中国–广东–广州–海珠区 电信 | 显示全部楼层
命令后加参数  "/?"就能看到解释了
例如xcopy /?
X31 → X41T ^_^
回复 支持 反对

使用道具 举报

42

回帖

0

积分

66

资产值

入门会员 Rank: 1

注册时间
2007-9-28
 楼主| 发表于 2008-11-6 02:16:59| 字数 657| - 中国–广西–桂林 中移铁通 | 显示全部楼层
我尝试写了一下,但是出现了一些问题,看看谁找的出来,其中我把copy改成copy,因为刚开始只是主体代码的时候我不小心把c盘的一些文件移出来了,所以后面又加了禁制在C:\移动文件
----------------
@echo off
:begin
set /p path1=请输路径
set /p type=请输入文件后缀名或者文件名
set /p path2=请输入转移后的路径

::禁制在C:\移动文件或输入空字符
if /i "%path1%"=="c:\" (
goto begin
  ) else (
   if /i "%path1%"=="" (
    goto error2
   ) else (
  cd %path1%
)

::如果是根目录则直接复制,如果路径中含有文件夹名择判断是否新建文件夹
if not exist %path2% md %path2%

::搜索文件主代码
if exist %path1% (
for /r %%a in (%type%) do (
copy "%%a" %path2%
)
) else (
goto :error2
)
goto finished

:error1
echo 建议您不要移动C:\下的文件,任意键a开始 & pause>nul
goto begin

:error2
echo 路径错误 & pause>nul
goto begin

:finished echo 文件移动结束,任意键退出 move & pause>nul

[ Edited by  hjlelele on 2008-11-6 02:25 ]
回复 支持 反对

使用道具 举报

1025

回帖

18

积分

5719

资产值

白金会员 Rank: 3Rank: 3Rank: 3

注册时间
2003-7-6
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2008-11-6 03:08:00| 字数 20| - 英国 | 显示全部楼层
能用windows自带的search么?
回复 支持 反对

使用道具 举报

42

回帖

0

积分

66

资产值

入门会员 Rank: 1

注册时间
2007-9-28
 楼主| 发表于 2008-11-9 14:55:32| 字数 551| - 中国–广西–桂林 中移铁通 | 显示全部楼层
-------------------------------经过ywgnom指点,终于明白了,修改后便可以用了
@echo off
:begin
set /p path1=请输路径

::禁制在C:\移动文件或输入空字符
if /i "%path1%"=="c:\"  goto begin
if /i "%path1%"=="" (goto error1) else cd %path1%

set /p type=请输入文件后缀名或者文件名
set /p path2=请输入转移后的路径

::如果是根目录则直接复制,如果路径中含有文件夹名择判断是否新建文件夹
if not exist %path2% md %path2%

::搜索文件主代码
if exist %path1% (
for /r %%a in (%type%) do (
copy "%%a" %path2%
)
) else (
echo you input an error paths & goto began
)
goto finished

:error1
echo 建议您不要移动C:\下的文件,任意键a开始 & pause>nul
goto begin

:finished echo 文件移动结束,任意键退出 move & pause>nul
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Powered by Discuz! X3.5 © 2001-2023 Comsenz Inc

GMT+8, 2025-1-31 08:13 , Processed in 0.136593 second(s), 41 queries , Gzip On, OPcache On.

手机版|小黑屋|安卓客户端|iOS客户端|Archiver|备用网址1|备用网址2|在线留言|专门网

返回顶部