标题: [文件操作] 批处理怎样复制全盘特定文件(如:*.MP3,MP3.*)到指定文件夹内? [打印本页]
作者: 芥子茶 时间: 2015-1-14 20:56 标题: 批处理怎样复制全盘特定文件(如:*.MP3,MP3.*)到指定文件夹内?
本帖最后由 芥子茶 于 2015-1-15 20:17 编辑
思路如下:
运行批处理提示输入复制文件名(如输入*.MP3),输入后回车将全盘的*.MP3复制到F:/MP3內(标题显示复制文件数量,同名文件自动覆盖),后提示“是否刪除原文件”是的話输入Y(不区分大小写),删除原文件保留复制后的文件,否的话直接回车退出!!!
作者: 慕夜蓝化 时间: 2015-1-17 18:25
本帖最后由 慕夜蓝化 于 2015-1-17 18:28 编辑
这个东西只能一个卷一个卷的操作,根据你的要求,我花了些时间专门写了个查询、或者进行复制移动的bat;
你试一下。- @echo off
- color 0f&title 慕夜蓝化&echo,&echo,
- setlocal enabledelayedexpansion
- set str=c d e f g h i j k l m n o p q r s t u v w x y z
- for %%i in (%str%) do (
- if exist %%i: set drive=!drive!,%%i:
- )
- echo,当前计算机下盘符:%drive:,= % &echo,&set/p=------ 按任意键开始 ------<nul&pause>nul&echo,&echo,
- set/p ex=请输入扩展名——格式(*.mp3)or(mp3.*) :
- for /f "delims=. tokens=1*" %%i in ("%ex%") do (
- if /i "%%i"=="*" (
- call :a %%j %drive:,= %
- ) else (
- call :a %%i %drive:,= %
- )
- )
-
- :a
- set "dp=%~5\%~1"
- md "%dp%" >nul 2>nul
- call :b %drive:,= %
- echo,若未复制或移动、删除文件,当前计算机的%ex%文件总数量为:%a%
- echo,&echo,------ 按任意键退出 ------&pause>nul&exit
-
- :b
- if not "%~1"=="" (
- shift
- for /r %~1\ %%i in (%ex%) do (
- set/a a+=1
- set/a n+=1
- )
- if defined n (
- echo,%~1 盘下含有 %ex% 文件数量:!n!
- set "n="
- set/p imput=是否复制?(y/n^) :
- if /i "!imput!"=="y" (
- for /r %~1\ %%i in (%ex%) do (
- copy /y "%%~fsi" "%dp%" >nul 2>nul
- )
- echo,—— 复制完成 ——
- set/p input= 是否删除源文件?(y/n^) :
- if /i "!input!"=="y" del /s/q/f %~1\%ex% &echo, —— 已删除 ——
- set "input="
- goto :b
- ) else (
- goto :b
- )
- ) else (
- echo,%~1 盘下不存在 %ex% 文件
- goto :b
- )
- ) else (
- goto :eof
- )
复制代码
保存为bat文件测试,一定要测试。也不要胡乱按。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |