Witam. Poszukuję kogoś, aby pomógł mi w napisaniu skryptu, który będzie działał na takiej zasadzie:
Mamy katalog A i katalog B. W katalogu A znajdują się takie foldery:
mama
tata
brat
Zaś w katalogu B takie foldery:
mama
brat
I teraz skrypt ma porównać zawartość tych dwóch katalogów i jeżeli wykryje, że w katalogu B nie ma folderu tata, zaś w katalogu A jest, to skrypt ma folder tata z katalogu A usunąć..
Skrypt ma działać pod systemem Windows Server 2003
Zobacz, czy zadziała Ci poniższy kod. Oczywiście zapisz go w pliku o rozszerzeniu bat. Sam plik odpalaj najlepiej z wiersza poleceń.
@ECHO OFF
SET /P "aFolder=Pelna sciezka folderu A: "
SET /P "bFolder=Pelna sciezka folderu B: "
IF NOT EXIST %aFolder% (GOTO :DisplayError "Folder A nie istnieje.")
IF NOT EXIST %bFolder% (GOTO :DisplayError "Folder B nie istnieje.")
CALL :DisplaySubFolders %aFolder%
CALL :DisplaySubFolders %bFolder%
CALL :DeleteSubFolders %aFolder%,%bFolder%
CALL :DeleteSubFolders %bFolder%,%aFolder%
GOTO :End
REM Procedures
:DisplaySubFolders
ECHO Foldery znajdujace sie w "%~1"
FOR /F "tokens=*" %%i IN ('DIR "%~1" /A:D /B') DO ECHO %%i
GOTO :End
:DeleteSubFolders
FOR /F "tokens=*" %%i IN ('DIR "%~1" /A:D /B') DO CALL :DeleteSubFoldersHelper "%~1","%~2","%%i"
GOTO :End
:DeleteSubFoldersHelper
FOR /F "tokens=*" %%j IN ('DIR "%~2" /A:D /B') DO IF "%~3"=="%%j" (GOTO :End)
RD /S /Q "%~1\%~3"
ECHO Folder "%~3" zostal usuniety z folderu "%~1".
GOTO :End
:DisplayError
ECHO %*
GOTO :End
:End