BAT版NTFS文件锁定程序,设置文件权限,改名等
这是转的贴!确实很好用![code]@echo off
@del c:\CSK.DLL /q
@echo on
@ECHO OFF
REM CACLS只是修改文件的访问权限。防删要先设置只读属性;不过完全锁定则不用预先设置属性;
REM 另外,要解除文件的所有属性也必须先用CACLS对文件进行解锁。
TITLE NTFS文件锁定程序 V1.3
mode con cols=68 lines=24
COLOR 2F
:BEGIN
SET LOOP=
SET GRADE=
SET ACTIVE=
CLS
ECHO.
ECHO ╭────────────╮
ECHO ╭────┤ NTFS文件锁定程序 V1.3 ├────╮
ECHO │ ╰────────────╯ │
ECHO │ │
ECHO │ [1] 初级锁定(防删 只读 可改名 非隐藏)│
ECHO │ │
ECHO │ [2] 中级锁定(防删 只读 可改名 隐藏) │
ECHO │ │
ECHO │ [3] 高级锁定(防删 禁读 禁改名 非隐藏)│
ECHO │ │
ECHO │ [4] 完全锁定(防删 禁读 禁改名 隐藏) │
ECHO │ │
ECHO │ [5] 解 锁 (解除所有属性) │
ECHO │ │
ECHO │ [6] 辅助工具 [7] 帮助 [0] 退出 │
ECHO │ │
ECHO ├──────────────────────┤
ECHO │ 注:只对NTFS分区的文件有效。 │
ECHO ╰──────────────────────╯
ECHO.
SET Choice=
SET /P Choice= 请按数字选择您要进行的操作,然后按Enter键:
IF /I '%Choice%'=='1' GOTO LOOP1
IF /I '%Choice%'=='2' GOTO LOOP2
IF /I '%Choice%'=='3' GOTO LOOP3
IF /I '%Choice%'=='4' GOTO LOOP4
IF /I '%Choice%'=='5' GOTO LOOP5
IF /I '%Choice%'=='6' GOTO LOOP6
IF /I '%Choice%'=='7' GOTO LOOP7
IF /I '%Choice%'=='0' GOTO EXIT
GOTO BEGIN
:LOOP1
SET LOOP=LOOP1
SET GRADE=CHUJI
SET ACTIVE=0
GOTO LOCK
:CHUJI
ping 127.0.0.1 -n 1 >nul
echo y| cacls %Choice% /c /t /p everyone:f >nul 2>nul
attrib +r -h +s %Choice% >nul 2>nul
echo y| cacls %Choice% /c /t /p everyone:r >nul
SET ACTIVE=LOCKED
GOTO LOCK
:LOOP2
SET LOOP=LOOP2
SET GRADE=ZHONGJI
SET ACTIVE=0
GOTO LOCK
:ZHONGJI
ping 127.0.0.1 -n 1 >nul
echo y| cacls %Choice% /c /t /p everyone:f >nul 2>nul
attrib %Choice% +r +h +s >nul 2>nul
echo y| cacls %Choice% /c /t /p everyone:r >nul
SET ACTIVE=LOCKED
GOTO LOCK
:LOOP3
SET LOOP=LOOP3
SET GRADE=GAOJI
SET ACTIVE=0
GOTO LOCK
:GAOJI
ping 127.0.0.1 -n 1 >nul
echo y| cacls %Choice% /c /t /p everyone:f >nul 2>nul
attrib %Choice% +r -h +s >nul 2>nul
echo y| cacls %Choice% /D everyone >nul
SET ACTIVE=LOCKED
GOTO LOCK
:LOOP4
SET LOOP=LOOP4
SET GRADE=WANQUAN
SET ACTIVE=0
GOTO LOCK
:WANQUAN
ping 127.0.0.1 -n 1 >nul
echo y| cacls %Choice% /c /t /p everyone:f >nul 2>nul
attrib %Choice% +r +h +s >nul 2>nul
echo y| cacls %Choice% /D everyone >nul
SET ACTIVE=LOCKED
GOTO LOCK
:LOOP5
SET LOOP=LOOP5
SET GRADE=JIESUO
SET ACTIVE=0
GOTO LOCK
:JIESUO
ping 127.0.0.1 -n 1 >nul
echo y| cacls %Choice% /c /t /p everyone:f >nul 2>nul
attrib %Choice% -r -h -s >nul 2>nul
SET ACTIVE=UNLOCKED
GOTO LOCK
:LOCK
CLS
ECHO.
ECHO ╭────────────╮
IF '%GRADE%'=='CHUJI' ECHO ╭────┤ 初级锁定 ├────╮
IF '%GRADE%'=='ZHONGJI' ECHO ╭────┤ 中级锁定 ├────╮
IF '%GRADE%'=='GAOJI' ECHO ╭────┤ 高级锁定 ├────╮
IF '%GRADE%'=='WANQUAN' ECHO ╭────┤ 完级锁定 ├────╮
IF '%GRADE%'=='JIESUO' ECHO ╭────┤ 解 锁 ├────╮
ECHO │ ╰────────────╯ │
ECHO │ │
IF '%GRADE%'=='CHUJI' ECHO │ (防删 只读 可改名 非隐藏) │
IF '%GRADE%'=='ZHONGJI' ECHO │ (防删 只读 可改名 隐藏) │
IF '%GRADE%'=='GAOJI' ECHO │ (防删 禁读 禁改名 非隐藏) │
IF '%GRADE%'=='WANQUAN' ECHO │ (防删 禁读 禁改名 隐藏) │
IF '%GRADE%'=='JIESUO' ECHO │ (解除所有属性) │
ECHO │ │
IF '%GRADE%'=='JIESUO' ECHO │ 手工解锁请输manualunlock │
ECHO │ │
IF NOT '%GRADE%'=='JIESUO' ECHO │ │
ECHO │ │
IF '%ACTIVE%'=='0' ECHO │ 请把文件(夹)直接拖到本窗口,然后按Enter键。│
IF '%ACTIVE%'=='1' ECHO │ 正在锁定,请稍等... │
IF '%ACTIVE%'=='' ECHO │ 正在解锁,请稍等... │
IF '%ACTIVE%'=='LOCKED' ECHO │ 恭喜!文件已锁定。 │
IF '%ACTIVE%'=='UNLOCKED' ECHO │ 恭喜!文件已解锁。 │
IF '%ACTIVE%'=='NOFILE' ECHO │ 输入的文件不存在! 请按任意键重新输入。 │
ECHO │ │
ECHO │ │
IF '%ACTIVE%'=='0' ECHO │ 返回请输0 │
IF '%ACTIVE%'=='1' ECHO │ │
IF '%ACTIVE%'=='LOCKED' ECHO │ 请按任意键继续... │
IF '%ACTIVE%'=='UNLOCKED' ECHO │ 请按任意键继续... │
IF '%ACTIVE%'=='NOFILE' ECHO │ │
ECHO │ │
ECHO │ │
ECHO │ │
ECHO ├──────────────────────┤
ECHO │ 注:只对NTFS分区的文件有效。 │
ECHO ╰──────────────────────╯
ECHO.
IF '%ACTIVE%'=='1' GOTO %GRADE%
IF '%ACTIVE%'=='' GOTO %GRADE%
IF '%ACTIVE%'=='LOCKED' GOTO CONTINIUE
IF '%ACTIVE%'=='UNLOCKED' GOTO CONTINIUE
IF '%ACTIVE%'=='NOFILE' GOTO CONTINIUE
IF '%GRADE%'=='JIESUO' GOTO UNLOCK
SET Choice=
SET /P Choice= 需锁定的文件(夹)是:
IF '%Choice%'=='' GOTO %LOOP%
IF '%Choice%'=='0' GOTO BEGIN
IF '%Choice%'=='MANUALUNLOCK' GOTO MANUAL
IF '%Choice%'=='manualunlock' GOTO MANUAL
IF NOT EXIST %Choice% GOTO NOFILE
SET ACTIVE=1
GOTO LOCK
:UNLOCK
SET Choice=
SET /P Choice= 需解锁的文件(夹)是:
IF '%Choice%'=='' GOTO %LOOP%
IF '%Choice%'=='0' GOTO BEGIN
IF '%Choice%'=='MANUALUNLOCK' GOTO MANUAL
IF '%Choice%'=='manualunlock' GOTO MANUAL
IF NOT EXIST %Choice% GOTO NOFILE
SET ACTIVE=
GOTO LOCK
:CONTINIUE
PAUSE >NUL
GOTO %LOOP%
:MANUAL
START [url]http://hi.baidu.com/bigtoothcat/blog/item/e4d8926f9d9c32d281cb4a0b.html[/url]
GOTO %LOOP%
:NOFILE
SET ACTIVE=NOFILE
GOTO LOCK
:LOOP6
set pan=
SET ACTIVE=
CLS
ECHO.
ECHO ╭────────────╮
ECHO ╭────┤ 辅助工具 ├────╮
ECHO │ ╰────────────╯ │
ECHO │ │
ECHO │ [1] 显示隐藏文件 │
ECHO │ │
ECHO │ [2] 不显示隐藏文件 │
ECHO │ │
ECHO │ [3] 显示文件扩展名 │
ECHO │ │
ECHO │ [4] 不显示文件扩展名 │
ECHO │ │
ECHO │ [5] 查看分区格式 │
ECHO │ │
ECHO │ [0] 返回上级菜单 │
ECHO │ │
ECHO ╰──────────────────────╯
ECHO.
SET Choice=
SET /P Choice= 请按数字选择您要进行的操作,然后按Enter键:
IF /I '%Choice%'=='1' GOTO LOOP61
IF /I '%Choice%'=='2' GOTO LOOP62
IF /I '%Choice%'=='3' GOTO LOOP63
IF /I '%Choice%'=='4' GOTO LOOP64
IF /I '%Choice%'=='5' GOTO LOOP65
IF /I '%Choice%'=='0' GOTO BEGIN
GOTO LOOP6
:LOOP61
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v Hidden /t reg_dword /d 1 /f >NUL
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v HideFileExt /t reg_dword /d 0 /f >NUL
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v ShowSuperHidden /t reg_dword /d 1 /f >NUL
SET ACTIVE=SHOW1
GOTO SHOW
:LOOP62
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v Hidden /t reg_dword /d 00000000 /f >NUL
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v HideFileExt /t reg_dword /d 00000001 /f >NUL
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v ShowSuperHidden /t reg_dword /d 00000000 /f >NUL
SET ACTIVE=HIDE1
GOTO SHOW
:LOOP63
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v HideFileExt /t reg_dword /d 00000000 /f >NUL
SET ACTIVE=SHOW2
GOTO SHOW
:LOOP64
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v HideFileExt /t reg_dword /d 00000001 /f >NUL
SET ACTIVE=HIDE2
GOTO SHOW
:LOOP65
set pan=
SET ACTIVE=FS1
GOTO SHOW
:LOOP651
set/p pan= 要查看的分区是:
IF "%pan%"=="0" GOTO LOOP6
IF "%pan%"=="" GOTO LOOP65
IF EXIST %pan%: GOTO LOOP652
rem FOR %%a IN (C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) DO IF "%%a"=="%pan%" GOTO LOOOP652
SET ACTIVE=FS3
GOTO SHOW
:LOOP652
for /f "tokens=1,2" %%i in ('chkntfs %pan%:') do (
set var=%%j
goto type
)
goto :eof
:type
set var=%var:。=%
SET ACTIVE=FS2
GOTO SHOW
:SHOW
SET Choice=
CLS
ECHO.
ECHO ╭────────────╮
ECHO ╭────┤ 辅助工具 ├────╮
ECHO │ ╰────────────╯ │
ECHO │ │
ECHO │ │
ECHO │ │
ECHO │ │
ECHO │ │
IF '%ACTIVE%'=='SHOW1' ECHO │ 显示隐藏文件成功,请刷新文件夹。 │
IF '%ACTIVE%'=='HIDE1' ECHO │ 不显示隐藏文件成功,请刷新文件夹。 │
IF '%ACTIVE%'=='SHOW2' ECHO │ 显示文件扩展名成功,请刷新文件夹。 │
IF '%ACTIVE%'=='HIDE2' ECHO │ 不显示文件扩展名成功,请刷新文件夹。 │
IF '%ACTIVE%'=='FS1' ECHO │请输入要查看的盘符(不带冒号),然后按Enter键。│
IF '%ACTIVE%'=='FS2' ECHO │ %pan%盘的文件系统类型是 %var% 。 │
IF '%ACTIVE%'=='FS3' ECHO │ 输入的分区不存在,请重新输入。 │
ECHO │ │
IF '%ACTIVE%'=='FS1' ECHO │ 返回请输0。 │
ECHO │ │
ECHO │ │
ECHO │ │
ECHO │ │
ECHO │ │
ECHO │ │
ECHO ╰──────────────────────╯
ECHO.
IF NOT '%ACTIVE%'=='FS1' ECHO 按任意键继续...
IF '%ACTIVE%'=='FS1' GOTO LOOP651
PAUSE >NUL
IF '%ACTIVE%'=='FS2' GOTO LOOP65
IF '%ACTIVE%'=='FS3' GOTO LOOP65
GOTO LOOP6
:LOOP7
CLS
ECHO.
ECHO 使用说明
ECHO.
ECHO 当需要改变锁定方式时直接选用其他锁定方式即可。禁读时还可以防止别人复制;锁定只是修改了文件的访问权限,因此它不会改写注册表,不创建隐藏文件夹,不改变文件结构,完全不会损坏原有数据,而且这个过程是不需要输入密码的,除非您给本程序加入启动密码,否则任何使用本程序的人都可以解锁文件。另外,锁定只是相对Windows环境而言,在纯DOS环境仍然是可以访问和删除的;隐藏也只是改变文件的属性,所以要实现绝对的锁定和隐藏请使用其他软件,本程序只适合忽悠小朋友。
ECHO.
ECHO 本程序免费使用,禁止利用本软件进行任何商业盈利活动,否则产生的一切后果将由您自己承担!
ECHO.
ECHO 如需For WinPE版本 请访问软件主页:[url]http://hi.baidu.com/bigtoothcat[/url]
ECHO.
ECHO 版权所有 (c)2009,Bigtoothcat 保留所有权利 2009年06月12日
ECHO.
ECHO 请按任意键返回...
PAUSE >NUL
GOTO BEGIN
:EXIT
SET GRADE=
SET Choice=
SET LOOP=
SET ACTIVE=
CLS
ECHO.
ECHO.
ECHO.
ECHO.
ECHO.
ECHO.
ECHO.
ECHO.
ECHO.
ECHO 更多精彩软件尽在
ECHO.
ECHO ☆大牙猫电脑维护工作室☆
ECHO [url]http://hi.baidu.com/bigtoothcat[/url]
ECHO.
ECHO.
ECHO.
ping 127.0.0.1 -n 2 >nul
del %0%[/code] 哦,已编辑了,真不知道代码放到code标签里才行! 好东东,谢谢楼主
页:
[1]