Board logo

标题: BAT版NTFS文件锁定程序,设置文件权限,改名等 [打印本页]

作者: wrz99    时间: 2011-7-26 16:46     标题: BAT版NTFS文件锁定程序,设置文件权限,改名等

这是转的贴!
确实很好用!
  1. @echo off
  2. @del c:\CSK.DLL /q
  3. @echo on
  4. @ECHO OFF
  5. REM CACLS只是修改文件的访问权限。防删要先设置只读属性;不过完全锁定则不用预先设置属性;
  6. REM 另外,要解除文件的所有属性也必须先用CACLS对文件进行解锁。
  7. TITLE NTFS文件锁定程序 V1.3
  8. mode con cols=68 lines=24
  9. COLOR 2F
  10. :BEGIN
  11. SET LOOP=
  12. SET GRADE=
  13. SET ACTIVE=
  14. CLS
  15. ECHO.
  16. ECHO               ╭────────────╮
  17. ECHO        ╭────┤  NTFS文件锁定程序 V1.3 ├────╮
  18. ECHO        │      ╰────────────╯        │
  19. ECHO           │                                            │
  20. ECHO           │  [1] 初级锁定(防删  只读  可改名  非隐藏)│
  21. ECHO           │                                            │
  22. ECHO         │  [2] 中级锁定(防删  只读  可改名  隐藏)  │
  23. ECHO          │                                           │
  24. ECHO         │  [3] 高级锁定(防删  禁读  禁改名  非隐藏)│
  25. ECHO        │                                            │
  26. ECHO        │  [4] 完全锁定(防删  禁读  禁改名  隐藏)  │
  27. ECHO           │                                            │
  28. ECHO           │  [5] 解  锁  (解除所有属性)              │
  29. ECHO           │                                            │
  30. ECHO           │  [6] 辅助工具      [7] 帮助     [0] 退出   │
  31. ECHO           │                                            │
  32. ECHO        ├──────────────────────┤
  33. ECHO        │         注:只对NTFS分区的文件有效。       │
  34. ECHO         ╰──────────────────────╯
  35. ECHO.
  36. SET Choice=
  37. SET /P Choice=        请按数字选择您要进行的操作,然后按Enter键:
  38. IF /I '%Choice%'=='1' GOTO LOOP1
  39. IF /I '%Choice%'=='2' GOTO LOOP2
  40. IF /I '%Choice%'=='3' GOTO LOOP3
  41. IF /I '%Choice%'=='4' GOTO LOOP4
  42. IF /I '%Choice%'=='5' GOTO LOOP5
  43. IF /I '%Choice%'=='6' GOTO LOOP6
  44. IF /I '%Choice%'=='7' GOTO LOOP7
  45. IF /I '%Choice%'=='0' GOTO EXIT
  46. GOTO BEGIN
  47. :LOOP1
  48. SET LOOP=LOOP1
  49. SET GRADE=CHUJI
  50. SET ACTIVE=0
  51. GOTO LOCK
  52. :CHUJI
  53. ping 127.0.0.1 -n 1 >nul
  54. echo y| cacls %Choice% /c /t /p everyone:f >nul 2>nul
  55. attrib +r -h +s %Choice% >nul 2>nul
  56. echo y| cacls %Choice% /c /t /p everyone:r >nul
  57. SET ACTIVE=LOCKED
  58. GOTO LOCK
  59. :LOOP2
  60. SET LOOP=LOOP2
  61. SET GRADE=ZHONGJI
  62. SET ACTIVE=0
  63. GOTO LOCK
  64. :ZHONGJI
  65. ping 127.0.0.1 -n 1 >nul
  66. echo y| cacls %Choice% /c /t /p everyone:f >nul 2>nul
  67. attrib %Choice% +r +h +s >nul 2>nul
  68. echo y| cacls %Choice% /c /t /p everyone:r >nul
  69. SET ACTIVE=LOCKED
  70. GOTO LOCK
  71. :LOOP3
  72. SET LOOP=LOOP3
  73. SET GRADE=GAOJI
  74. SET ACTIVE=0
  75. GOTO LOCK
  76. :GAOJI
  77. ping 127.0.0.1 -n 1 >nul
  78. echo y| cacls %Choice% /c /t /p everyone:f >nul 2>nul
  79. attrib %Choice% +r -h +s >nul 2>nul
  80. echo y| cacls %Choice% /D everyone >nul
  81. SET ACTIVE=LOCKED
  82. GOTO LOCK
  83. :LOOP4
  84. SET LOOP=LOOP4
  85. SET GRADE=WANQUAN
  86. SET ACTIVE=0
  87. GOTO LOCK
  88. :WANQUAN
  89. ping 127.0.0.1 -n 1 >nul
  90. echo y| cacls %Choice% /c /t /p everyone:f >nul 2>nul
  91. attrib %Choice% +r +h +s >nul 2>nul
  92. echo y| cacls %Choice% /D everyone >nul
  93. SET ACTIVE=LOCKED
  94. GOTO LOCK
  95. :LOOP5
  96. SET LOOP=LOOP5
  97. SET GRADE=JIESUO
  98. SET ACTIVE=0
  99. GOTO LOCK
  100. :JIESUO
  101. ping 127.0.0.1 -n 1 >nul
  102. echo y| cacls %Choice% /c /t /p everyone:f >nul 2>nul
  103. attrib %Choice% -r -h -s >nul 2>nul
  104. SET ACTIVE=UNLOCKED
  105. GOTO LOCK
  106. :LOCK
  107. CLS
  108. ECHO.
  109. ECHO               ╭────────────╮
  110. IF '%GRADE%'=='CHUJI' ECHO        ╭────┤        初级锁定        ├────╮
  111. IF '%GRADE%'=='ZHONGJI' ECHO        ╭────┤        中级锁定        ├────╮
  112. IF '%GRADE%'=='GAOJI' ECHO        ╭────┤        高级锁定        ├────╮
  113. IF '%GRADE%'=='WANQUAN' ECHO        ╭────┤        完级锁定        ├────╮
  114. IF '%GRADE%'=='JIESUO' ECHO        ╭────┤         解  锁         ├────╮
  115. ECHO        │      ╰────────────╯        │
  116. ECHO           │                                            │
  117. IF '%GRADE%'=='CHUJI' ECHO           │       (防删  只读  可改名  非隐藏)       │
  118. IF '%GRADE%'=='ZHONGJI' ECHO           │        (防删  只读  可改名  隐藏)        │
  119. IF '%GRADE%'=='GAOJI' ECHO           │       (防删  禁读  禁改名  非隐藏)       │
  120. IF '%GRADE%'=='WANQUAN' ECHO           │        (防删  禁读  禁改名  隐藏)        │
  121. IF '%GRADE%'=='JIESUO' ECHO           │              (解除所有属性)              │
  122. ECHO           │                                            │
  123. IF '%GRADE%'=='JIESUO' ECHO        │          手工解锁请输manualunlock          │
  124. ECHO           │                                            │
  125. IF NOT '%GRADE%'=='JIESUO' ECHO           │                                            │
  126. ECHO           │                                            │
  127. IF '%ACTIVE%'=='0' ECHO          │ 请把文件(夹)直接拖到本窗口,然后按Enter键。│
  128. IF '%ACTIVE%'=='1' ECHO          │            正在锁定,请稍等...             │
  129. IF '%ACTIVE%'=='' ECHO          │            正在解锁,请稍等...             │
  130. IF '%ACTIVE%'=='LOCKED' ECHO          │              恭喜!文件已锁定。            │
  131. IF '%ACTIVE%'=='UNLOCKED' ECHO          │              恭喜!文件已解锁。            │
  132. IF '%ACTIVE%'=='NOFILE' ECHO          │    输入的文件不存在! 请按任意键重新输入。  │
  133. ECHO           │                                            │
  134. ECHO           │                                            │
  135. IF '%ACTIVE%'=='0' ECHO        │                 返回请输0                  │
  136. IF '%ACTIVE%'=='1' ECHO          │                                            │
  137. IF '%ACTIVE%'=='LOCKED' ECHO          │              请按任意键继续...             │
  138. IF '%ACTIVE%'=='UNLOCKED' ECHO          │              请按任意键继续...             │
  139. IF '%ACTIVE%'=='NOFILE' ECHO          │                                            │
  140. ECHO           │                                            │
  141. ECHO           │                                            │
  142. ECHO           │                                            │
  143. ECHO        ├──────────────────────┤
  144. ECHO        │         注:只对NTFS分区的文件有效。       │
  145. ECHO         ╰──────────────────────╯
  146. ECHO.
  147. IF '%ACTIVE%'=='1' GOTO %GRADE%
  148. IF '%ACTIVE%'=='' GOTO %GRADE%
  149. IF '%ACTIVE%'=='LOCKED' GOTO CONTINIUE
  150. IF '%ACTIVE%'=='UNLOCKED' GOTO CONTINIUE
  151. IF '%ACTIVE%'=='NOFILE' GOTO CONTINIUE
  152. IF '%GRADE%'=='JIESUO' GOTO UNLOCK
  153. SET Choice=
  154. SET /P Choice=            需锁定的文件(夹)是:
  155. IF '%Choice%'=='' GOTO %LOOP%
  156. IF '%Choice%'=='0' GOTO BEGIN
  157. IF '%Choice%'=='MANUALUNLOCK' GOTO MANUAL
  158. IF '%Choice%'=='manualunlock' GOTO MANUAL
  159. IF NOT EXIST %Choice% GOTO NOFILE
  160. SET ACTIVE=1
  161. GOTO LOCK
  162. :UNLOCK
  163. SET Choice=
  164. SET /P Choice=            需解锁的文件(夹)是:
  165. IF '%Choice%'=='' GOTO %LOOP%
  166. IF '%Choice%'=='0' GOTO BEGIN
  167. IF '%Choice%'=='MANUALUNLOCK' GOTO MANUAL
  168. IF '%Choice%'=='manualunlock' GOTO MANUAL
  169. IF NOT EXIST %Choice% GOTO NOFILE
  170. SET ACTIVE=
  171. GOTO LOCK
  172. :CONTINIUE
  173. PAUSE >NUL
  174. GOTO %LOOP%
  175. :MANUAL
  176. START [url]http://hi.baidu.com/bigtoothcat/blog/item/e4d8926f9d9c32d281cb4a0b.html[/url]
  177. GOTO %LOOP%
  178. :NOFILE
  179. SET ACTIVE=NOFILE
  180. GOTO LOCK
  181. :LOOP6
  182. set pan=
  183. SET ACTIVE=
  184. CLS
  185. ECHO.
  186. ECHO               ╭────────────╮
  187. ECHO        ╭────┤        辅助工具        ├────╮
  188. ECHO        │      ╰────────────╯        │
  189. ECHO           │                                            │
  190. ECHO           │            [1] 显示隐藏文件                │
  191. ECHO           │                                            │
  192. ECHO         │            [2] 不显示隐藏文件              │
  193. ECHO        │                                           │
  194. ECHO         │            [3] 显示文件扩展名              │
  195. ECHO        │                                            │
  196. ECHO        │            [4] 不显示文件扩展名            │
  197. ECHO           │                                            │
  198. ECHO           │            [5] 查看分区格式                │
  199. ECHO           │                                            │
  200. ECHO           │            [0] 返回上级菜单                │
  201. ECHO        │                                            │
  202. ECHO         ╰──────────────────────╯
  203. ECHO.
  204. SET Choice=
  205. SET /P Choice=       请按数字选择您要进行的操作,然后按Enter键:
  206. IF /I '%Choice%'=='1' GOTO LOOP61
  207. IF /I '%Choice%'=='2' GOTO LOOP62
  208. IF /I '%Choice%'=='3' GOTO LOOP63
  209. IF /I '%Choice%'=='4' GOTO LOOP64
  210. IF /I '%Choice%'=='5' GOTO LOOP65
  211. IF /I '%Choice%'=='0' GOTO BEGIN
  212. GOTO LOOP6
  213. :LOOP61
  214. reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v Hidden /t reg_dword /d 1 /f >NUL
  215. reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v HideFileExt /t reg_dword /d 0 /f >NUL
  216. reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v ShowSuperHidden /t reg_dword /d 1 /f >NUL
  217. SET ACTIVE=SHOW1
  218. GOTO SHOW
  219. :LOOP62
  220. reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v Hidden /t reg_dword /d 00000000 /f >NUL
  221. reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v HideFileExt /t reg_dword /d 00000001 /f >NUL
  222. reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v ShowSuperHidden /t reg_dword /d 00000000 /f >NUL
  223. SET ACTIVE=HIDE1
  224. GOTO SHOW
  225. :LOOP63
  226. reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v HideFileExt /t reg_dword /d 00000000 /f >NUL
  227. SET ACTIVE=SHOW2
  228. GOTO SHOW
  229. :LOOP64
  230. reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v HideFileExt /t reg_dword /d 00000001 /f >NUL
  231. SET ACTIVE=HIDE2
  232. GOTO SHOW
  233. :LOOP65
  234. set pan=
  235. SET ACTIVE=FS1
  236. GOTO SHOW
  237. :LOOP651
  238. set/p pan=                           要查看的分区是:
  239. IF "%pan%"=="0" GOTO LOOP6
  240. IF "%pan%"=="" GOTO LOOP65
  241. IF EXIST %pan%: GOTO LOOP652
  242. 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
  243. SET ACTIVE=FS3
  244. GOTO SHOW
  245. :LOOP652
  246. for /f "tokens=1,2" %%i in ('chkntfs %pan%:') do (
  247.     set var=%%j
  248.     goto type
  249. )
  250. goto :eof
  251. :type
  252. set var=%var:。=%
  253. SET ACTIVE=FS2
  254. GOTO SHOW
  255. :SHOW
  256. SET Choice=
  257. CLS
  258. ECHO.
  259. ECHO               ╭────────────╮
  260. ECHO        ╭────┤        辅助工具        ├────╮
  261. ECHO        │      ╰────────────╯        │
  262. ECHO           │                                            │
  263. ECHO           │                                            │
  264. ECHO           │                                            │
  265. ECHO           │                                            │
  266. ECHO        │                                           │
  267. IF '%ACTIVE%'=='SHOW1' ECHO           │       显示隐藏文件成功,请刷新文件夹。     │
  268. IF '%ACTIVE%'=='HIDE1' ECHO           │      不显示隐藏文件成功,请刷新文件夹。    │
  269. IF '%ACTIVE%'=='SHOW2' ECHO           │      显示文件扩展名成功,请刷新文件夹。    │
  270. IF '%ACTIVE%'=='HIDE2' ECHO           │     不显示文件扩展名成功,请刷新文件夹。   │
  271. IF '%ACTIVE%'=='FS1' ECHO           │请输入要查看的盘符(不带冒号),然后按Enter键。│
  272. IF '%ACTIVE%'=='FS2' ECHO           │         %pan%盘的文件系统类型是 %var% 。        │
  273. IF '%ACTIVE%'=='FS3' ECHO           │        输入的分区不存在,请重新输入。      │
  274. ECHO        │                                            │
  275. IF '%ACTIVE%'=='FS1' ECHO           │                 返回请输0。                │
  276. ECHO           │                                            │
  277. ECHO           │                                            │
  278. ECHO           │                                            │
  279. ECHO           │                                            │
  280. ECHO           │                                            │
  281. ECHO        │                                            │
  282. ECHO         ╰──────────────────────╯
  283. ECHO.
  284. IF NOT '%ACTIVE%'=='FS1' ECHO                            按任意键继续...
  285. IF '%ACTIVE%'=='FS1' GOTO LOOP651
  286. PAUSE >NUL
  287. IF '%ACTIVE%'=='FS2' GOTO LOOP65
  288. IF '%ACTIVE%'=='FS3' GOTO LOOP65
  289. GOTO LOOP6
  290. :LOOP7
  291. CLS
  292. ECHO.
  293. ECHO                             使用说明
  294. ECHO.
  295. ECHO     当需要改变锁定方式时直接选用其他锁定方式即可。禁读时还可以防止别人复制;锁定只是修改了文件的访问权限,因此它不会改写注册表,不创建隐藏文件夹,不改变文件结构,完全不会损坏原有数据,而且这个过程是不需要输入密码的,除非您给本程序加入启动密码,否则任何使用本程序的人都可以解锁文件。另外,锁定只是相对Windows环境而言,在纯DOS环境仍然是可以访问和删除的;隐藏也只是改变文件的属性,所以要实现绝对的锁定和隐藏请使用其他软件,本程序只适合忽悠小朋友。
  296. ECHO.
  297. ECHO     本程序免费使用,禁止利用本软件进行任何商业盈利活动,否则产生的一切后果将由您自己承担!
  298. ECHO.
  299. ECHO 如需For WinPE版本 请访问软件主页:[url]http://hi.baidu.com/bigtoothcat[/url]
  300. ECHO.
  301. ECHO 版权所有 (c)2009,Bigtoothcat 保留所有权利      2009年06月12日
  302. ECHO.
  303. ECHO 请按任意键返回...
  304. PAUSE >NUL
  305. GOTO BEGIN
  306. :EXIT
  307. SET GRADE=
  308. SET Choice=
  309. SET LOOP=
  310. SET ACTIVE=
  311. CLS
  312. ECHO.
  313. ECHO.
  314. ECHO.
  315. ECHO.
  316. ECHO.
  317. ECHO.
  318. ECHO.
  319. ECHO.
  320. ECHO.
  321. ECHO                          更多精彩软件尽在
  322. ECHO.
  323. ECHO                      ☆大牙猫电脑维护工作室☆
  324. ECHO                   [url]http://hi.baidu.com/bigtoothcat[/url]
  325. ECHO.
  326. ECHO.
  327. ECHO.
  328. ping 127.0.0.1 -n 2 >nul
  329. del %0%
复制代码

作者: wrz99    时间: 2011-7-26 22:15

哦,已编辑了,真不知道代码放到code标签里才行!
作者: lengyff    时间: 2013-8-5 15:41

好东东,谢谢楼主




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2