网上收集到一个备份恢复文件夹NTFS安全设置的batch脚本,很实用。
- @echo off
- REM The syntax for using NTFSBKP.bat is: NTFSBKP DriveOrFolder DestinationFolder BKP|RST
- :: Where:
- :: DriveOrFolder is the drive, or folder, including files and sub-folders, whose NTFS security you wish to backup or restore.
- :: DestinationFolder is the destination folder that will contain /does contain two files that hold backed up security attributes.
- :: BKP|RST BKP causes NTFSBKP.bat to backup the NTFS security. RST causes NTFSBKP.bat to restore the NTFS security from the previous backup.
- If {%3}=={} @echo Syntax: NTFSBKP DriveOrFolder DestinationFolder BKP^|RST&goto :EOF
- if not exist %1 @echo NTFSBKP - %1 NOT FOUND.&goto :EOF
- if not exist %2 @echo NTFSBKP - %2 NOT FOUND.&goto :EOF
- if /i {%1}=={%2} @echo Syntax: NTFSBKP DriveOrFolder DestinationFolder BKP^|RST&goto :EOF
- if /i {%3}=={BKP} goto OK
- if /i {%3}=={RST} goto OK
- @echo Syntax: NTFSBKP DriveOrFolder DestinationFolder BKP^|RST&goto :EOF
- :OK
- setlocal
- set DorF=%1#
- set DorF=%DorF:"=%
- set DorF=%DorF:\#=%
- set DorF=%DorF:#=%
- set Fld=%2#
- set Fld=%Fld:"=%
- set Fld=%Fld:\#=%
- set Fld=%Fld:#=%
- set Sw=%3
- set F1=%DorF%
- set F1=%F1::\=_%
- set F1=%F1:\=_%
- set F2="%Fld%\%F1%_ALL.log"
- set F1="%Fld%\%F1%.log"
- if /i "%Sw%" EQU "RST" goto Restore
- set D1="%DorF%"
- set D2="%DorF%\*.*"
- if exist %F1% del /q %F1%
- if exist %F2% del /q %F2%
- subinacl /noverbose /nostatistic /outputlog=%F1% /subdirectories %D1% /display
- subinacl /noverbose /nostatistic /outputlog=%F2% /subdirectories %D2% /display
- endlocal
- goto :EOF
- :Restore
- if not exist %F1% goto :Rest1
- if not exist %F2% goto :Rest2
- subinacl /nostatistic /playfile %F1%
- subinacl /nostatistic /playfile %F2%
- endlocal
- goto :EOF
- :Rest1
- @echo NTFSBKP %1 %2 %3 - %F1% NOT FOUND.
- endlocal
- goto :EOF
- :Rest2
- @echo NTFSBKP %1 %2 %3 - %F2% NOT FOUND.
- endlocal