Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 将多个文件复制到一个文件中(如果存在)_Batch File - Fatal编程技术网

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

Batch file 将多个文件复制到一个文件中(如果存在),batch-file,Batch File,我正在尝试创建一个运行以下代码的批处理文件: COPY IDSA14OP* + IGSA14OP* + IGSG14OP* + IGCO14OP* IDSA14OP.328 出现问题时,四个文件中的一个文件可能不存在。这是我到目前为止所做的,但同样,如果不知道四个脚本中的哪一个可能不存在,我会对如何构建脚本感到困惑 @echo off ::Set Date Variable for /f "tokens=2-4 delims=:,.-/ " %%I in ("%DATE

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

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%

编辑:添加
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

如果某些文件不存在,是否要跳过整个过程,或者只是附加确实存在的文件?附加确实存在的文件获取错误-如果此时使用下面的回答时出现意外,请尝试在
之间插入
do
,如果存在…
如果不存在会有什么问题?使用上面我提出的if exist%v1%type%v1%>%ext%等等,似乎正在进行初始测试。谢谢你的帮助