批处理脚本将两个不同的文件扩展名(.doc和.log)复制到新创建的文件夹或目录(带日期)

时间:2015-02-03 12:44:30

标签: file batch-file copy

我是脚本新手,我正在编写一个批处理文件,它将从两个不同的源/目录中复制最近或新创建的文件(.doc和.log),并创建一个目标文件夹名称& #34;备份(今天的日期)" 基本上,这两个文件来自不同的源并复制到一个文件夹

来自C:\ Doc_backup的New_doc.doc 来自C:\ Log_backup的New_log.log 目的地:d:\ file_backup \ backup20140330

下面的代码将创建一个文件夹(带有日期)并从源代码复制唯一的文件。 但我不知道从不同的源到单个文件夹复制两个不同的文件。

@echo off
setlocal
::Create Directory with date
SET dd=%date:~0,2%
SET mm=%date:~3,2%
SET yy=%date:~6,4%
SET date=%yy%%mm%%dd%
md c:\file_backup\backup%date%

set srcDir=c:\doc_backup
set srcDir2=c:\log_backup
set destdir=c:\file_backup\backup%date%
set lastmod=
pushd %srcDir%
for /f "tokens=*" %%a in ('dir *.DOC /b /od 2^>NUL') do set lastmod=%%a
if "%lastmod%"=="" echo Could not locate files.&goto :eof
copy "%lastmod%" "%destDir%"
pause

1 个答案:

答案 0 :(得分:0)

可以执行所有copy任务,假设变量srcDirdestDir已正确定义,下一个代码段没有for循环:

pushd "%destDir%"
copy /B "%srcDir%\*.doc"
popd

但是,让我们更正代码中的一些错误:

@echo off
setlocal
::Create Directory with date
SET "dd=%date:~0,2%"
SET "mm=%date:~3,2%"
SET "yy=%date:~6,4%"
SET "xdate=%yy%%mm%%dd%"
md "c:\file_backup\backup%xdate%"

set "srcDir=c:\doc_backup"
set "destdir=c:\log_backup\backup%xdate%"
md "%destdir%" 2>NUL
rem set lastmod=
pushd %srcDir%
for /f "tokens=*" %%a in ('dir *.DOC /b /od 2^>NUL') do (
  rem set lastmod=%%a
  rem if "%lastmod%"=="" echo Could not locate files.&goto :eof
  copy /B "%%a" "%destDir%\"
)
pause

popd
endlocal