@ECHO OFF
:: Windows version check
IF NOT [%OS%]==[Windows_NT] GOTO Syntax
:: Only one single command line parameter specified?
IF [%1]==[] GOTO Syntax
IF NOT [%2]==[] GOTO Syntax
:: Help wanted?
ECHO.%* | FIND "?" >NUL
IF NOT ERRORLEVEL 1 GOTO Syntax
:: No wildcards allowed
ECHO.%* | FIND "*" >NUL
IF NOT ERRORLEVEL 1 GOTO Syntax
:: Was a valid directory specified?
DIR /AD /X "%~1.\..\%~n1*" 2>NUL | FIND "
" | FIND /I "%~n1" >NUL
IF ERRORLEVEL 1 GOTO Syntax
SETLOCAL
ECHO."%~f1"
TAKEOWN "%~f1"
PUSHD "%~f1"
TAKEOWN *.*
SET StartDir=%CD%
FOR /F "tokens=* delims=" %%A IN ('DIR /AD /B "%StartDir%.\*.*" 2^>NUL') DO (
ECHO."%%~fA"
ATTRIB -H -R -S "%%~fA"
TAKEOWN "%%~fA"
CD "%%~fA"
ATTRIB -h -r -s *.* >NUL 2>&1
FOR /F "tokens=* delims=" %%? IN ('DIR /A-D /B "%%~fA.\*.*" 2^>NUL') DO (
ECHO."%%~f?"
TAKEOWN "%%~f?"
)
CALL "%~f0" "%%~fA"
CD "%StartDir%"
)
POPD
ENDLOCAL
GOTO:EOF
:Syntax
ECHO.
ECHO OWN.bat, Version 0.59.59 FINAL BETA for Windows 2000
ECHO Recursively take ownership of entire specified directory tree.
ECHO.
ECHO Usage: OWN startdir
ECHO.
ECHO Uses TAKEOWN.EXE from the Resource Kit.
ECHO.
ECHO Written by Rob van der Woude
ECHO http://www.robvanderwoude.com
ECHO.
ECHO WARNING: This batch file hasn't been tested extensively yet.
ECHO Use entirely at your OWN risk.