我正在创建一个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/