将多个文件复制到一个文件(如果存在)

时间:2014-03-27 14:42:38

标签: batch-file

我尝试创建一个运行以下代码的批处理文件:

COPY IDSA14OP*  +   IGSA14OP*   +   IGSG14OP*  +  IGCO14OP*   IDSA14OP.328

问题进来,因为有时四个文件可能不存在。这是我到目前为止所做的,但是再一次,不知道如果四个中的任何一个可能不存在哪个让我对如何构建脚本感到困惑。

@echo off

::Set Date Variable
for /f "tokens=2-4 delims=:,.-/ " %%I in ("%DATE%") do set DT=%%I%%J

::Set File Name Vars
set v0=
set v1=IDSA14OP*
set v2=IGSA14OP*
set v3=IGSG14OP*
set v4=IGCO14OP*
set ext=IDSA14OP.%DT%

IF EXIST %v1% set v0=Copy %v1% +   
IF %v0%==NULL set v0=Copy         
IF EXIST %v2% set v0=%v0% %v2% + 
IF %v0%==NULL set v0=Copy
IF EXIST %v3% set v0=%v0% %v3% + 
IF %v0%==NULL set v0=Copy
IF EXIST %v4% set v0=%v0% %v4%

set v0=%v0% %ext%

echo %v0%

1 个答案:

答案 0 :(得分:0)

编辑:添加了do个关键字

测试:它应该附加存在的文件

@echo off
for %%a in (
IDSA14OP*
IGSA14OP*
IGSG14OP*
IGCO14OP*
) do if exist %%a call set line=%%line%% + %%a
echo copy /b %line:~2% IDSA14OP.328
pause

如果文件是文本文件,这是另一个选项:

@echo off
for %%a in (
IDSA14OP*
IGSA14OP*
IGSG14OP*
IGCO14OP*
) do if exist %%a type %%a >>IDSA14OP.328
pause