如何使用cmd中的嵌套循环将目标位置的文件替换为源位置的另一个文件

在一个文件夹sourcefiles下,我有三个.aar文件:

D:\test\sourcefiles\netQ-1.aar
D:\test\sourcefiles\netQ-2.aar
D:\test\sourcefiles\netQ-3.aar

我想在三个不同的位置替换那些.aar文件,

D:\fido\netQ-1\netQ-1.aar
D:\fido\netQ-2\netQ-2.aar
D:\fido\netQ-3\netQ-3.aar

文件位于sourcefiles,但前提是目标位置的文件名与其名称匹配,即

D:\fido\netQ-1\netQ-1.aar替换为D:\test\sourcefiles\netQ-1.aar
D:\fido\netQ-2\netQ-2.aarD:\test\sourcefiles\netQ-2.aar
D:\fido\netQ-3\netQ-2.aarD:\test\sourcefiles\netQ-3.aar

为此,我正在尝试使用嵌套的for循环 命令:

for /d %a in ('dir /b  D:\test\sourcefiles\*.aar') do FOR /F "usebackq" %b in (`DIR /s /b  D:\fido\\.aar`) do (if /i "%%~xa" equ "%%~xb" (replace the files ))

在这种If条件下,我试图匹配文件名,然后执行替换操作。实现此目的的正确命令是什么?

ZIer0921 回答:如何使用cmd中的嵌套循环将目标位置的文件替换为源位置的另一个文件

给出您提供的确切输入示例:

来自cmd

@for %i in ("D:\test\sourcefiles\*.aar") do if exist "D:\fido\%~ni\%~nxi" copy "%~i" "D:\fido\%~ni\%~nxi" /Y

以及批处理文件中的

@echo off
for %%i in ("D:\test\sourcefiles\*.aar") do if exist "D:\fido\%%~ni\%%~nxi" copy "%%~i" "D:\fido\%%~ni\%%~nxi" /Y

仅当目标文件夹与示例中显示的不带扩展名的文件名确实相同时,此选项才起作用。

注意,在两种情况下,仅在对屏幕echo感到满意的情况下,才删除echo。回声只是一种安全措施。

本文链接:https://www.f2er.com/3122818.html

大家都在问