我刚加入堆栈溢出是因为你们太棒了。所以我已经批量脚本一年了,是的,我知道这和“飘”一样古老,但我别无选择。
我的批处理问题是这样的。我需要将c:\Folder4 1\ *.bat与E:\Folder4 4\*.bat进行比较,并且只返回匹配的".bat“文件。我可以很容易地用这个代码.
对于/R c:\folder1 1\%I在(.bat)中,如果存在“E:\folder1 4\%%~nxi”(回显%~ni)
然后,我可以继续做我想做的事情,其中大部分是备份和替换。然而,我只是偶然发现了一些有趣的东西。我现在需要执行相同的操作,但如下所示:
将c:\folder1*.bat中的文件与
E:\Folder4 4\subfolder1 1\ *.bat E:\Folder4 4\subfolder2 2\ *.bat E:\Folder4 4\subfolder3 3\ *.bat E:\Folder4 4\subfolder4 4\ *.bat E:\Folder4 4\subfolder5 5\ *.bat E:\Folder4 4\subfolder6 6\ *.bat
诸若此类。
我的批处理问题是,如何比较c:\folder1*.bat中的内容,看看每个E:\Folder4 4\子文件夹中是否也有?一旦完成,我还需要将E:\Folder4 4\子文件夹中的内容替换为来自c:\folder1*.bat的匹配文件。我用其他语言做过这件事,但不知道如何在批处理中完成。
谢谢
发布于 2015-03-24 03:13:31
如果我正确地理解了你的问题,那么像这样的事情可能会奏效:
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 ...this也许更多的是你想要的:
@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"
)
)
pausehttps://stackoverflow.com/questions/29222615
复制相似问题