bat复制文件夹到另一个文件夹 并以时间命名

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bat复制文件夹到另一个文件夹 并以时间命名相关的知识,希望对你有一定的参考价值。

我想把一个文件夹 复制到另外一个文件夹中,并以时间命名这个文件夹(如:201807241400)

@echo off
xcopy j:\京易家\*.* f:\京易家\%date% /s
echo ^>^>^>^> 复制成功!
pause

现在的问题是 这个bat会让确认一下是文件夹名还是文件名 ,而且文件夹名称只是2018-7-24 没有小时和分钟。。。。
小白求大佬!

********************START*******************************
@echo off
setlocal enabledelayedexpansion

rem set parameter here
rem dirCopy: 0-file copy, 1-directory copy
set sourcePath=C:\Test\source
set targetPath=C:\Test\target
set fileList=list.txt
set dirCopy=1

set /a copyCount=0
dir /s /b !sourcePath!>filelist.txt
if !dirCopy! equ 0 (
goto FILE_COPY
)else (
goto DIR_COPY
)

:DIR_COPY
for /f "delims=" %%i in (!fileList!) do (
find "%%i" filelist.txt > findfile.txt
if !errorlevel! equ 0 (
for /f "skip=2 delims=" %%j in (findfile.txt) do (
set tPath=%%~fj
set tPath=!tPath:%sourcePath%=!
echo f | xcopy /y %%j !targetPath!!tPath!>nul
set /a copyCount+=1
)
)else (
echo can't find file %%i
)
)
goto END

:FILE_COPY
for /f "delims=" %%i in (!fileList!) do (
find "%%i" filelist.txt > findfile.txt
if !errorlevel! equ 0 (
for /f "skip=2 delims=" %%j in (findfile.txt) do (
copy /y %%j !targetPath!\%%i>nul
set /a copyCount+=1
)
)else (
echo can't find file %%i
)
)
goto END

:END
del filelist.txt
del findfile.txt
echo ************************************
echo copy file success: !copyCount!
pause

********************END*******************************

sourcePath是查找的文件夹,targetPath是目标文件夹,dirCopy表示是只复制文件(值为0)还是带目录复制(值为1),fileList是所有的待查找文件列表,是一个文本文件,格式如下:
光辉岁月.txt江南.txt123.mp3

执行完毕后会得到类似的结果,找不到的文件给出文件名,然后给出复制了多少个文件的结果:
参考技术A bat脚本如下:
xcopy
c:\data\data1
d:\data\
/e
xcopy
c:\data\data2
d:\data\
/e
用xcopy
复制目录树,/e
参数是包括空目录。
但如果目标路径存在,则不能复制。

bat复制文件夹下所有文件到另一个目录

一个需求,王章着了半天都是错了,所哟记一下吧。

copy是文件拷贝,文件夹拷贝需要用到xcopy

@echo off
::当前盘符
set curPath=%cd%
set digPath ="%curPath%tool\dig"
set PATH=%PATH%;%digPath%
wmic ENVIRONMENT where "name=‘path‘ and username=‘<system>‘" set VariableValue="%path%;%curPath%tool\dig"
::copy库文件
if /i "%PROCESSOR_IDENTIFIER:~0,3%" == "X86" goto 1
if /i "%PROCESSOR_IDENTIFIER:~0,3%" NEQ "X86" goto 2
:1 /////32位
xcopy %curPath%winpcap\win32\dll\* %systemroot%\System32\ /s/e/y
xcopy %curPath%winpcap\win32\config\* %systemroot%\System32\drivers\ /s/e/y
::pause
exit
:2 /////64位
echo %curPath%winpcap\win64\dll\win32
xcopy %curPath%winpcap\win64\dll\win32\* %systemroot%\System32\ /s/e/y
xcopy %curPath%winpcap\win32\config\* %systemroot%\System32\drivers\ /s/e/y
xcopy %curPath%winpcap\win64\dll\win64\* %systemroot%\SysWOW64\ /s/e/y
::pause
exit

达到效果:

覆盖不提示,添加环境变量

以上是关于bat复制文件夹到另一个文件夹 并以时间命名的主要内容,如果未能解决你的问题,请参考以下文章

急!用bat制作批处理文件,复制一个文件到多个以日期命名文件夹下并以“文件夹名+文件本名”的形式重命名

bat怎么批量以文件夹名字命名文件夹中第一个文件?

如何用bat复制一个文件夹到另一个文件夹去?

bat脚本照片复制重命名?

使用bat文件复制特定文本行?

怎么用bat复制指定的一个文件到指定文件夹,并重命名?