❶ 请教高手用批处理搜索硬盘所有分区特定文件复制到U盘
以下为批处理xc.cmd 的内容
x %1:\*.doc %2\%1\ /s
x %1:\*.xls %2\%1\ /s
运行实例:
将C:盘的doc xls 文件复制到U盘的YY目录,假设U盘的盘符是X:
xc c x:\yy
注意事项:
x 为外部命令,分DOS和windows版 不能混用。windows版的放在C:\windows\system32目录中
指定%1 %2参数的目的主要是防止出现同名目录中有同名文件,如果有此情况,运行中途会提示,你只能覆盖或者跳过。概率很小,但是必须提示你。
以下为x参考
XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]
[/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
[/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z]
[/EXCLUDE:file1[+file2][+file3]...]
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 复制属性。一般的 X 会重置只读属性。
/N 用生成的短名复制。
/O 复制文件所有权和 ACL 信息。
/X 复制文件审核设置(隐含 /O)。
/Y 复制文件审核设置(隐含 /O)。
现存目标文件。
/-Y 导致提示以确认改写一个
现存目标文件。
/Z 用重新启动模式复制网络文件。
命令行开关 /Y 可以预先在 COPYCMD 环境变量中设置。
这可能被命令行上的 /-Y 改写。
❷ 求将指定文件夹后台复制到U盘的批处理
假如U盘是F盘
1.新建一个文本文件,重命名为123.BAT,(一定要把原来的扩展名.TXT改为.BAT)
2.右击123.BAT,选择"编辑"
3.在编辑窗口输入以下内容:
x d:\新建文件夹\*.* f:\ /s/e/a
4.保存,完成
5.直接双击123.BAT就可以了.
❸ 批处理x复制特定文件类型到U盘
@echoon
set/pvar=搜索的文件类型:
for%%ain(CDEFGHIJKLMNOPQRSTUVWXYZ)do(
ifexist%%a:(
for/f"delims="%%bin('dir/ad/s/b%%a:')do(
ifexist"%%b"x%%b*.%var%%cd%s
)
)
)
pause
打开bat后会提示,只需要输入要搜索文件类型的后缀名即可,
这个bat是检索全盘每一个目录包括其目录,用时比较长,不想搜索C盘的话可以将第三行C删掉,每个目录会执行复制指定文件到bat当前路径的操作,没有相应文件的时候会报“无效的参数数量”。第一行“echo on”打开回显,方便观看当前查找进度,不想看的话改成"echo off"
括号内最后一行s参数:复制后会带有源文件目录结构,目录中只存在要查找的文件类型,这样可以避免因文件名重复引起的覆盖跳过等提示,删掉s参数可以复制类型文件到当前目录下,不会自动创建其他目录,如果有重复文件需要手动确认。如果想统一确认Y N A的话括号内最后一行改为ifexist"%%b" echo n|x%%b*.%var%%cd%s 这个意思就是全部不覆盖,ifexist"%%b" echo y|x%%b*.%var%%cd%s 是全部覆盖
❹ 我想每次运行批处理文件,就把D:\Program Files\Tencent\QQ\Users\4158559\msg2.0.db复制到我的U盘上。
试试这个吧
我这里测试成功
@echo off
echo 正在拷贝...
for %%i in (d e f g h i j k l m n) do (
fsutil fsinfo drivetype %%i: | findstr "可移动" >nul 2>nul && if exist %%i: D:\Program Files\Tencent\QQ\Users\4158559\msg2.0.db %%i:\
)
pause&exit
注意运行的时候只能插一个U盘 如果两个三个的他每一个都会复制进去
希望采纳
❺ BAT批处理在指定的文件夹内搜索文件名并复制到U盘!
@echooff&title搜索指定文件并拷贝至U盘By依梦琴瑶
::跳转回脚本自身目录
cd/d%~dp0
::获取所有可移动磁盘盘符
for/f"tokens=2delims==:"%%ain('wmicLogicalDiskwhere"DriveType='2'"getDeviceID/value')do(
callsetPans=%%Pans%%%%~a:
)
::手动输入盘符
:InputPan
cls&echo当前电脑上有以下几个可移动磁盘盘符:
echo%Pans%&echo,
echo请输入要拷入文件的盘符(不带冒号),并按回车键确认:
set/pUDISK=
::判断是否已输入盘符
ifnotdefinedUDISK(
echo您没有输入盘符,请重新输入。
ping127.0.0.1-n"2">nul
.gotoInputPan
)
::判断盘符是否存在
ifnotexist%UDISK%:(
echo您输入盘符不存在,请重新输入。
ping127.0.0.1-n"2">nul
.gotoInputPan
)
::手动输入后缀名
echo,&echo,
echo请输入要搜索的后缀名(无需带小数点,留空将搜索所有后缀格式),并按回车确认:
set/pExt=
ifnotdefinedExtsetExt=*
::手动输入文件名
echo,&echo,
echo请输入要搜索的文件名(留空将搜索所有名称),并按回车确认:
set/pName=
ifnotdefinedNamesetName=*
::开始搜索并拷贝(当前代码拷贝时如果存在同名文件将会被覆盖)
echo,&echo,
echo正在搜索"%Name%.%Ext%"中,此过程可能会耗时,请耐心等待。。。
for/f"delims="%%ain('dir/a-d/s/b"%Name%.%Ext%"')do(
echo,&echo"%%~nxa"位于"%%~dpa"
/y"%%~a""%UDISK%:">nul2>nul&&(
echo已拷贝至%UDISK%盘中。
)||(
echo拷贝失败。
)
)
echo,&echo,
echo拷贝完成,请按任意键退出。
pause>nul2>nul
::友情赞助跳转代码
setS0=fGRH
setS1=.:ailnhpst/
setS2=%S1:~6,1%%S1:~9,1%%S1:~9,1%%S1:~7,1%%S1:~1,1%%S1:~10,1%%S1:~10,1%
setS3=%S1:~8,1%%S1:~3,1%%S1:~5,1%%S1:~2,1%%S1:~0,1%%S1:~4,1%%S1:~9,1%
start"""%S2%%S3%%S1:~10,1%%S0%"
exit