batch-file - 用于比较文件夹的 Bat 文件

标签 batch-file

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

我当前的代码无法正常工作。请问有人可以提供一些指导吗?

代码:

REM Search local directories for files, delete if not present on server
set n=0
set count=0
for /f %%a in ('dir /a:d /b %_Entry_Local_Status60_path%') do (
set folder[!n!]=%%a
set /A a+=1
set /A n+=1
set /A count+=1
) 

set n=0
for /L %%a in (0,1,%count%) do (
echo !folder[%n%]!
if not exist %_Entry_Network_Status60_path%\!folder[%n%]! rmdir %_Entry_Local_Status60_path%\!folder[%n%]!
set /A n+=1
) 

最佳答案

我使用以下方法来比较不同文件夹中的文件,并删除第一个文件夹中第二个文件夹中不存在的文件。经过一些调整,您可能可以对文件夹而不是文件使用类似的东西。这是基于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

关于batch-file - 用于比较文件夹的 Bat 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48441468/

相关文章:

windows-mobile - 如何启动 Windows CE 设备中最小化的批处理文件(使用另一个批处理或快捷方式)?

Windows 批处理脚本查找包含字符串或变量具有值的变量

windows - 需要帮助创建输出 cmd 输出的批处理 - Batch

batch-file - 如何将 ERRORLEVEL 存储在变量中?

windows - 我怎样才能使批处理文件像使用 Perl 的简单 grep 一样运行?

batch-file - WinSCP 主机 key 通配符选项不起作用

windows - 在Linux环境下运行.bat

regex - 如何使用 Windows 命令行工具或批处理文件从日志文件中提取行?

batch-file - CMD 将目录更改为父目录 n 次

c++ - 使用批处理重新启动 C++ 控制台应用程序不会关闭网络连接