如何使用批处理批量复制(或移动)指定复数文件到新建的指定文件夹?

如:源文件夹 D:\My Documents\201509有证件照(姓名+身份证号码)命名的JPG文件若干,现有EXCEL文件包含姓名、身份证号码、对应的单位和单位负责人信息,想要使用批处理执行如下操作:JPG文件按照EXCEL信息分别复制到以“单位+单位负责人”新建的各个对应文件夹里面。请问可否实现?

1 建bat文件自动执行复制,删除命令。
例1:以下是复制cd.dll文件至windows\system32的bat文件内容:
copy cd.dll %windir%\system32

例2:下面一行是卸载windows\system32目录中的cd.dll,即把上面复制的文件删除:
del %windir%\system32\cd.dll

例3:删除download文件夹中的文件,例子如下:
del C:\DOWNLOAD\*.*
[注意]:这里的del命令只能删文件,不能删文件夹。要删除文件夹得用rd命令,如下:
rd Filemon
这里filemon文件夹和该bat文件在同一目录下,就省去具体路径了。但rd只能删除空文件夹.
要删除文件夹及其里面的所有子目录和文件,用rd命令带/s /q参数,
/s参数表示删除该文件夹及其下面的子目录和文件
/q参数表示,不需要确认

2 创建文件夹
例:在E:\My documents下面一次创建3个新文件夹:Newfolder1,Newfolder2,Newfolder3
@echo off
md "E:\My documents\Newfolder1"
md "E:\My documents\Newfolder2"
md "E:\My documents\Newfolder3"

3 执行程序,打开文件或目录

例1:打开指定目录,如C:\Test
start C:\Test
例2:执行C盘下的WinWord.exe程序
start C:\WinWord.exe
例3:用某个程序打开某个文件,如用TheWorld.exe打开一个htm文件
start d:\TheWorld\TheWorld.EXE C:\我有一个恋爱.htm
[注意]:不论是程序或文件路径中含有空格,都必须用引号括起来:
start d:\TheWorld\TheWorld.EXE "e:\My documents\我有一个恋爱.htm"
所有程序中的引号不能是全角的,必须用半角的格式,所以输入引号前最好关闭汉字输入系统

4. 拷贝文件夹 XCOPY
XCOPY命令可用于复制文件和目录,包括子目录。 其功能多数是通过增加参数来实现的。
XCOPY source [destination] 参数(如 /s /e)
source 指定要复制的文件。
destination 指定新文件的位置和/或名称。
/A 只复制有存档属姓集的文件,
但不改变属姓。
/M 只复制有存档属姓集的文件,
并关闭存档属姓。
/D:m-d-y 复制在指定日期或指定日期以后改变的文件。
如果没有提供日期,只复制那些源时间
比目标时间新的文件。
/EXCLUDE:file1[+file2][+file3]...
指定含有字符串的文件列表。如果有任何
字符串与要被复制的文件的绝对路径
相符,那个文件将不会得到复制。
例如,指定如 \obj\ 或 .obj 的字符串会排除
目录 obj 下面的所有文件或带有
.obj 扩展名的文件。
/P 创建每个目标文件前提示。
/S 复制目录和子目录,除了空的。
/E 复制目录和子目录,包括空的。
与 /S /E 相同。可以用来修改 /T。
/V 验证每个新文件。
/W 提示您在复制前按键。
/C 即使有错误,也继续复制。
/I 如果目标不存在,又在复制一个以上的文件,
则假定目标一定是一个目录。
/Q 复制时不显示文件名。
/F 复制时显示完整的源和目标文件名。
/L 显示要复制的文件。
/G 允许将没有经过加密的文件复制到
不支持加密的目标。
/H 也复制隐藏和系统文件。
/R 改写只读文件。
/T 创建目录结构,但不复制文件。不
包括空目录或子目录。/T /E 包括
空目录和子目录。
/U 只复制已经存在于目标中的文件。
/K 复制属姓。一般的 Xcopy 会重设只读属姓。
/N 用生成的短名复制。
/O 复制文件所有权和 ACL 信息。
/X 复制文件审核设置(隐含 /O)。
/Y 禁止提示以确认改写一个
现存目标文件。
/-Y 导致提示以确认改写一个
现存目标文件。
/Z 用重新启动模式复制网络文件。追问

非常感谢你的回答,提供了很多知识。能否更有针对性,更直观的对问题给予答案?最好是原创的,而非直接简单复制文库等已有内容过来。

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-11-17
我试过了,在我这边是行的
但是不知道你文件的命名规则(是否有空格或特殊字符)
以及文件路径,所以可能有问题
你试试看吧,有问题再联系我:
Sub main()
Dim brr(10000)
Set dic = CreateObject("scripting.dictionary")
arr = Range("A1").CurrentRegion
For i = 2 To UBound(arr)
dic(arr(i, 1) & arr(i, 2)) = arr(i, 3) & arr(i, 4)
Next i
b = Dir("D:\My Documents\201509\" & "*.jpg")
Do While b <> ""
j = j + 1
brr(j) = b
b = Dir
Loop
For i = 1 To j
x = Left(brr(i), Len(brr(i)) - 4)
If Dir("D:\My Documents\201509\" & dic(x), vbDirectory) = vbNullString Then
MkDir "D:\My Documents\201509\" & dic(x)
当前 = "D:\My Documents\201509\" & brr(i)
目标 = "D:\My Documents\201509\" & dic(x) & "\" & brr(i)
FileCopy 当前, 目标
Else
当前 = "D:\My Documents\201509\" & brr(i)
目标 = "D:\My Documents\201509\" & dic(x) & "\" & brr(i)
FileCopy 当前, 目标
End If
Next i
End Sub本回答被网友采纳

cmd命令怎么使用?
copy 路径\\文件名1 路径\\文件名2 \/y 复制文件1到指定的目录为文件2,用参数\/y就同时取消确认你要改写一份现存目录文件 copy c:\\srv.exe $">\\\\ip\\admin$ 复制本地c:\\srv.exe到对方的admin下 cppy 1st.jpg\/b+2st.txt\/a 3st.jpg 将2st.txt的内容藏身到1st.jpg中生成3st.jpg新的文件,注:2st.tx...

文件批量处理百宝箱的各功能用法简介
(1)有1000个txt文件,需要在每个文件的最前面添加“某某工作室”的标记,则批替换的通配符组合规则为,在查找框中输入:*^p,在替换框中输入:某某工作室^p^&,先取消全部替换选项,然后执行批替换操作,则1000个txt文件就会自动全部在每个文件的最前面添加如上某某工作室的标记,大大提高工作效率。(2)有1000个txt文件,...

DOS 中的符号是什么意思 比如% $都是做什么的?急求答案谢谢高手_百度...
copy 路径\\文件名1 路径\\文件名2 \/y 复制文件1到指定的目录为文件2,用参数\/y就同时取消确认你要改写一份现存目录文件 copy c:\\srv.exe \\\\ip\\admin$ 复制本地c:\\srv.exe到对方的admin下 cppy 1st.jpg\/b+2st.txt\/a 3st.jpg 将2st.txt的内容藏身到1st.jpg中生成3st.jpg新的文件,注:2st.txt文件...

批处理命令都有什么
从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。call 命令接受用作调用目标的标签。如果在脚本或批处理文件外使用 Call,它将不会在命令行起作用。语法 call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]参数 [Drive:}[Path] FileName 指定要调用的批处理...

DOS如果下查看进程
copy 路径\\文件名1 路径\\文件名2 \/y 复制文件1到指定的目录为文件2,用参数\/y就同时取消确认你要改写一份现存目录文件 N-WsBgZlzC copy c:\\srv.exe \\\\ip\\admin$ 复制本地c:\\srv.exe到对方的admin下 *4.ZN;cmz cppy 1st.jpg\/b+2st.txt\/a 3st.jpg 将2st.txt的内容藏身到1st.jpg中生成3st....

关于DOS命令
用法:MOVE 文件[夹]1 文件[夹]2 如MOVE C:\\*.EXE D: 此命令可以将C盘根文件夹下所有扩展名为EXE的文件移到D盘上。 XCOPY 复制文件或文件夹。 用法:XCOPY 文件[夹]名1 [文件[夹]名2] [选项] 它的选项非常多,如\/S可拷贝整个文件夹(包括子文件夹)中的文件,\/E指定包括空文件夹,\/V表示复制完后检验...

DOS基础操作命令
bin指用二进制方式传送(可执行文件进);默认为ASCII格式传送(文本文件时)goto 标签 将cmd.exe导向到批处理程序中带标签的行(标签必须单独一行,且以冒号打头,例如:“:start”标签)if 在批处理程序中执行条件处理(更多说明见if命令及变量)ipconfig (winipcfg) 用于windows NT及XP(windows 95 98)查看本地ip地址,ip...

Linux命令-文件管理命令
使用方法: Cat –n diannaob1diannaob2,把diannaob1里的内容加上行号以后并入diannaob2。 Cat –b diannaob1 diannaob2diannaob3,对diannaob1和diannaob2里的内容加上行号(空白行不加)并入diannaob3。chattr 功能:给指定文件添加,去掉,赋予属性。 常配合使用参数: -R 递归处理,将指定目录下的所有文件及子目录一并...

cmd命令,cmd高手请进!!!1!50分奖赏之后追加好多分
open ip 连接到IP(属telnet登陆后的命令) telnet 在本机上直接键入telnet 将进入本机的telnet copy 路径文件名1 路径文件名2 \/y 复制文件1到指定的目录为文件2,用参数\/y就同时取消确认你要改写一份现存目录文件 copy c:srv.exe ipadmin$ 复制本地c:srv.exe到对方的admin下 cppy 1st.jpg\/b+2st.txt\/a...

DOS命令有常见的
(九)SYS——系统复制命令1.功能:将当前驱动器上的DOS系统文件IO.SYS,MSDOS.SYS和COMMAND.COM 传送到指定的驱动器上。2.类型:外部命令3.格式:SYS[盘符:]*使用说明:如果磁盘剩余空间不足以存放系统文件,则提示:No roomfor on destination disk.文件操作类命令(一) COPY文件复制命令1.功能:拷贝一个或多个文件...

相似回答