在一个文件夹下,例如sourcefiles
,我有三个.aar
文件:
D:testsourcefilesnetQ-1.aar
D:testsourcefilesnetQ-2.aar
D:testsourcefilesnetQ-3.aar
我想替换三个不同位置的.aar
文件,
D:fidonetQ-1netQ-1.aar
D:fidonetQ-2netQ-2.aar
D:fidonetQ-3netQ-3.aar
使用sourcefiles
位置的文件,但前提是目标位置的文件名与其名称匹配,即
用D:testsourcefilesnetQ-1.aar
替换D:fidonetQ-1netQ-1.aar
nbsp nbsp nbsp nbsp nbsp nbsp D:fidonetQ-2netQ-2.aar
与D:testsourcefilesnetQ-2.aar
nbsp nbsp nbsp nbsp nbsp nbsp;D:fidonetQ-3netQ-2.aar
与D:testsourcefilesnetQ-3.aar
为此,我尝试使用嵌套的For循环命令:
for /d %a in ('dir /b D:testsourcefiles*.aar') do FOR /F "usebackq" %b in (`DIR /s /b D:fido\.aar`) do (if /i "%%~xa" equ "%%~xb" (replace the files ))
在这个If
条件下,我试图匹配文件名,然后执行替换操作。实现这一目标的正确命令是什么?
给出您给出的确切输入示例:
来自cmd
@for %i in ("D:testsourcefiles*.aar") do if exist "D:fido%~ni%~nxi" copy "%~i" "D:fido%~ni%~nxi" /Y
和来自批处理文件:
@echo off
for %%i in ("D:testsourcefiles*.aar") do if exist "D:fido%%~ni%%~nxi" copy "%%~i" "D:fido%%~ni%%~nxi" /Y
只有当目标文件夹与示例中所示的没有扩展名的文件名完全相同时,这才会起作用。
注意在这两种情况下,只有当您对屏幕上的结果echo
'd感到满意时,才能删除echo
。回声只是一种安全措施。