Batch file 用于比较文件夹的Bat文件

Batch file 用于比较文件夹的Bat文件,batch-file,Batch File,我希望创建一个bat文件,将dir命令中的本地文件夹与服务器上的文件夹进行比较,然后删除服务器上不存在的本地文件夹。此外,它还存在包括空格在内的目录问题,但我还没有对此进行研究 我当前的代码工作不正常。有谁能提供一些指导吗 代码: 您应该看看robocopy命令。我认为robocopy\u source\u target\u/purge正是您想要的。我使用以下方法比较不同文件夹中的文件,并从第一个文件夹中删除第二个文件夹中不存在的文件。通过一些修改,您可能会使用类似的文件夹,而不是文件。这是基于

我希望创建一个bat文件,将dir命令中的本地文件夹与服务器上的文件夹进行比较,然后删除服务器上不存在的本地文件夹。此外,它还存在包括空格在内的目录问题,但我还没有对此进行研究

我当前的代码工作不正常。有谁能提供一些指导吗

代码:


您应该看看
robocopy
命令。我认为
robocopy\u source\u target\u/purge
正是您想要的。

我使用以下方法比较不同文件夹中的文件,并从第一个文件夹中删除第二个文件夹中不存在的文件。通过一些修改,您可能会使用类似的文件夹,而不是文件。这是基于FC的,您必须提供两个绝对路径:

echo off   
set "Folder1=path\to\Folder1"
set "Folder2=path\to\Folder2"

for /f "delims=" %%F in ('dir /b "%folder2%"') do (
    if not exist "%folder1%\%%F" (
        fc /b "%folder1%\%%F" "%folder2%\%%F"
        if "%errorlevel%" EQU "1" (
            del "%folder1%\%%F" && echo Deleted "%%F"
        )
    ) else (
        del "%folder1%\%%F" && echo Deleted "%%F"
    )
)
pause
Exit

@我不明白你在说什么?@statosdotcom
robocopy
是一个cmd命令。您可以在批处理文件或纯命令行中使用它。对不起,Gerhard和Michael,谢谢。我的评论错了。这听起来正是我需要的,我会试试看。很好。我使用/e也包括所有子文件夹。谢谢你的帮助。谢谢你的建议,将来可能会有用的。上面的机器人操作命令实现了我想要的目标。谢谢你的关注。如果你的问题解决了,请检查Michael的答案是否正确。如果你认为这是有帮助的,你也可以投票加一,向其他用户发出关于功能和有用性的信号。我也是!谢谢
echo off   
set "Folder1=path\to\Folder1"
set "Folder2=path\to\Folder2"

for /f "delims=" %%F in ('dir /b "%folder2%"') do (
    if not exist "%folder1%\%%F" (
        fc /b "%folder1%\%%F" "%folder2%\%%F"
        if "%errorlevel%" EQU "1" (
            del "%folder1%\%%F" && echo Deleted "%%F"
        )
    ) else (
        del "%folder1%\%%F" && echo Deleted "%%F"
    )
)
pause
Exit