从一个目录复制文件,然后在多个目录中替换文件

时间:2019-04-11 16:48:04

标签: batch-file

我需要从目录(源)复制一个jar文件,并在目标位置替换该文件。但是问题是我的目标目录不同,如下所述:

Source = D:\ temp \ R56A

Target = D:\ path \ AP \ Different_folders \ lib \ i2

目标文件夹示例:-

D:\ path \ AP \ ABC1 \ lib \ i2

D:\ path \ AP \ XY_C \ lib \ i2

D:\ path \ AP \ GHS3 \ lib \ i2

我无法获取不同的文件夹名称,并且脚本无法使用它。

这是用于Windows框的。我们可以将文件夹名称复制到文本文件中,然后将该文本文件作为for循环中的变量调用吗?有可能吗?

@ECHO OFF
REM SETLOCAL ENABLEDELAYEDEXPANSION
set Source=D:\temp\R56A
set Target=D:\path\AP\<Different_Directory_names>\lib\i2
set file=i2-bam.jar
for /f "delims=" %%f in ('dir /a-d /b /s "%Source%\%file%"') do (
    copy /V "%%f" "%Target%\" 2>nul
)

PART 2

@ECHO OFF
for /d "D:\temp\R56A\" %%f in (i2-bam.jar) do copy %%f "D:\path\AP\<Different_Directory_names>\lib\i2"

1 个答案:

答案 0 :(得分:1)

这是您要做什么吗?

@Echo Off
Set "Source=D:\temp\R56A"
Set "File=i2-bam.jar"
Set "Target=D:\path\AP"
Set "Sub=lib\i2"

If Not Exist "%Source%\%File%" Exit /B
If Not Exist "%Target%\" Exit /B

For /D %%A In ("%Target%\*")Do If Exist "%%A\%Sub%\" Copy /Y "%Source%\%File%" "%%A\%Sub%">Nul