我刚刚加入了stackoverflow,因为你的人很棒。所以我现在已经批量编写了一年,是的,我知道这和“Gone with the Wind”一样古老,但我别无选择。
我的 BATCH 问题就是这个问题。我需要将c:\ folder1 \ *.bat
与E:\ Folder4 \ *.bat
进行比较,并仅返回匹配的“.bat”文件。我可以使用此代码轻松实现此目标....
for / R c:\ folder1 \ %% i in( .bat)如果存在“E:\ Folder4 \ %% ~nxi”(echo %% ~ni)
然后我可以按照我喜欢的方式继续做,其中大部分是备份和替换。但是,我只是遇到了一些有趣的事情。我现在需要执行相同的操作,但是如此:
将c:\ folder1 * .bat中的文件与
进行比较E:\ Folder4 \ subfolder1 \ * .bat
E:\ Folder4 \ subfolder2 \ * .bat
E:\ Folder4 \ subfolder3 \ * .bat
E:\ Folder4 \ subfolder4 \ * .bat
E:\ Folder4 \ subfolder5 \ * .bat
E:\ Folder4 \ subfolder6 \ * .bat
等等。
我的 BATCH 问题是如何比较c:\ folder1 * .bat中的内容,看看它是否也在每个E:\ Folder4 \子文件夹中?一旦完成,我还需要用来自c:\ folder1 * .bat的匹配文件替换E:\ Folder4 \ subfolder中的内容。我已经用其他语言完成了这项工作但不知道如何使用批次。
由于
答案 0 :(得分:0)
如果我正确理解你的问题,那么这样的事情可能有用:
for %%i in (
"D:\Folder4\subfolder1\*.bat"
"D:\Folder4\subfolder2\*.bat"
"D:\Folder4\subfolder3\*.bat"
"D:\Folder4\subfolder4\*.bat"
"D:\Folder4\subfolder5\*.bat"
"D:\Folder4\subfolder6\*.bat"
) do XCOPY /U /Y "C:\folder1\*.bat" "%%i"
基本上XCOPY
命令有我认为你需要的选项。
修改强>
我的理解在增长:P ......这可能更符合您的要求:
@echo off
for /r D:\Folder4\ %%i in (*.bat) do (
for /r C:\folder\ %%j in (*.bat) do (
if %%~ni == %%~nj XCOPY /U /Y "%%j" "%%i"
)
)
pause