批处理实现两个文件夹下的文件名比较,一旦重名,就把目标地址的同名文件复制到一个其他的文件夹下
答案:2 悬赏:30
解决时间 2021-02-03 11:11
- 提问者网友:柠檬香
- 2021-02-02 22:10
文件夹a和文件夹b下文件名比较,重名的话,把文件夹b里的文件复制到文件夹c(注意文件夹a和文件夹b下都有子文件夹和子文件,所以子文件夹下的文件也要比较,如果重名,也需要将子文件夹里的文件,存到c文件夹里相应于b的子文件夹里)复制包括子文件夹的文件,要存到c内相应的文件夹里
最佳答案
- 二级知识专家网友:萌萌哒小可爱
- 2021-02-02 23:43
@echo off
::设置A目录路径
set A=A
::设置B目录路径
set B=B
::设置C目录路径
set C=C
setlocal enabledelayedexpansion
Call :GetFullPath "%A%" "%B%" "%C%"
for /f "delims=" %%a in ('dir /a-d/s/b "%B%"') do (
set "str=%%~a"
if exist "!str:%B%=%A%!" (
set str1=!str:%B%=!
xcopy /s/e/y "!str!" "%C%!str1:\%%~nxa=!"
)
)
pause & exit
:GetFullPath
set "A=%~f1"
set "B=%~f2"
set "C=%~f3"
goto :eof
::设置A目录路径
set A=A
::设置B目录路径
set B=B
::设置C目录路径
set C=C
setlocal enabledelayedexpansion
Call :GetFullPath "%A%" "%B%" "%C%"
for /f "delims=" %%a in ('dir /a-d/s/b "%B%"') do (
set "str=%%~a"
if exist "!str:%B%=%A%!" (
set str1=!str:%B%=!
xcopy /s/e/y "!str!" "%C%!str1:\%%~nxa=!"
)
)
pause & exit
:GetFullPath
set "A=%~f1"
set "B=%~f2"
set "C=%~f3"
goto :eof
全部回答
- 1楼网友:野性且迷人
- 2021-02-03 00:24
@echo off
set "a=d:\a\"
set "b=d:\b\"
set "c=d:\c\"
md "%c%" 2>nul
cd /d "%a%"
for /f "delims=" %%a in ('dir /a-d/b') do (
if exist "%b%%%~nxa" (copy "%b%%%~nxa" "%c%" /y)
)
pause 无误及时采纳回答
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |