求批处理 复制子目录下的所有文件

来源:百度知道 编辑:UC知道 时间:2024/06/24 09:49:06
d:\book下有不同的多级子目录,把所有子文件夹里的文件(主要是.htm文件)复制到一个文件夹
里(例如d:\newbook)?如有重名,则在原文件名前添加创建时间。
复制的文件不包括.txt和.bak类型。

在网上搜索了好多例子,没有成功,高手帮帮我吧!
谢谢你们热心帮助!pur_e:由于同一日期的同名文件不少,所以会发生覆盖。(以10个同名文件测试)
liuzhaonan11:一般情况下你的方法是可以的,但是由于当前时间仅精确到0.1秒,文件数量多并且同名文件多的话,还是有个别没有复制成功。(会出现重名更改提示)
——由于时间精确问题,能不能再添加序号比如001 002?我还不会修改命令。
睿之锐:每个文件添加的随机码为什么都是一样的呢?
除了htm还有其它文件的,图片和chm doc等,只要排除.txt和.bak,其余全部复制,要怎么写呀?

现在符合要求了吧,用数字递加当前缀,除非你有50个以上重复,否则不会覆盖的,就算50个以上你还可以自己改数字,至于多种文件,在第二行里面自己添加就行了,还不懂hi我

@echo off
for %%a in (htm chm doc) do (
for /r "d:\book\" %%i in (*.%%a) do (
call :cp "%%i"
)
)
echo 命令成功完成!
pause
exit
:cp
for /l %%j in (1,1,50) do (
if not exist "d:\network\%~nx1" (
copy %1 "d:\network\%~nx1"
goto :eof
)
if not exist "d:\network\%%j-%~nx1" (
copy %1 "d:\network\%%j-%~nx1"
goto :eof
)

)

你说的创建时间是当前时间吧.
"pur_e"那个回答不可行,因为他用的是百分号,导致如果有两个同名的会覆盖.

(测试成功)
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /a:-d /b /s "d:\book\"') do (
if not "%%~xi"==".txt" if not "%%~xi"==".bak" (
if not exist "d:\newbook\%%~nxi&q

怎样用DOS复制子目录下的文件? 求一个批处理,重命名某目录下N多图片的名称。 dos下的复制文件夹不能复制子文件夹? 请问怎么用命令或批处理命令一次删除windows server 2003系统一个目录下的所有文件??? 请问如何在windows2000 server下用批处理删除特定目录中指定时间之前的所有文件 请问各位大大,如何用批处理实现某目录下上一天以前建的所有压缩文件,谢谢! 如何用批处理删除不同目录下的同一文件 关于批处理执行带空格中文目录下的程序 如何用一个批处理操作将一个文件*.ini写进所有的文件夹?该目录下的所有子文件也可,谢谢! 怎样用一个批处理改不在同一个文件夹的文件名?也就是说我想改D盘下所有目录中以TXT后缀为HTM的?谢谢了