一个无需软件加密文件夹的bat(批处理)文件的分析

作者:iamlaosong

网上看到一个bat文件,说是不用软件就可以加密文件夹,实际上就是用这个批处理文件改变文件夹属性,将其隐藏,这样就看不见了。当然这种方法对于稍微懂点电脑的人是没用的,真正的加密还是用软件的。其实最简单的办法就是将文件夹压缩,再设置解压密码就可以达到目的,毕竟压缩软件是每台机器必备的软件。

这个加密方法不是重点,重点是通过学习模仿这个批处理文件用到的命令,做一些其他事情。

1、下面是这个批处理文件,rem后面是注释:

cls 
rem 清除命令窗口的内容
@ECHO OFF
rem 关闭命令回显,@表示关闭本命令回显
title Folder Private
rem 修改命令窗口的名字为“Folder Private”
if EXIST "HTG Locker" goto UNLOCK
rem 如果文件夹"HTG Locker"存在就到标号UNLOCK处
if NOT EXIST Private goto MDLOCKER
rem 如果文件夹"Private"不存在就到标号MDLOCKER处
:CONFIRM
rem 这是一个标号
echo 你确定要加密隐藏Private文件夹吗?(Y/N)
rem 显示字符串
set/p "cho=>"
rem 给cho赋值,其中的>是提示符,也可以换成其他字符串,例如:set/p "cho=Please Input:"
if %cho%==Y goto LOCK
if %cho%==y goto LOCK
if %cho%==n goto END
if %cho%==N goto END
rem 上面4行语句是对cho的值进行判断,根据内容到不同的标号处
echo Invalid choice.
goto CONFIRM
rem 回到标号CONFIRM处,重新输入
:LOCK
ren Private "HTG Locker"
rem 给文件夹改名:将Private改为"HTG Locker"
attrib +h +s "HTG Locker"
rem 给文件夹增加隐藏(h)和系统(s)属性
echo Folder locked
goto End
:UNLOCK
echo 输入密码来解锁文件夹
set/p "pass=>"
rem 给pass变量赋值
if NOT %pass%== 在此设置密码 goto FAIL
rem 判断pass的内容是否是设定的密码(这个密码也是明文,打开文件就可以看到,呵呵)
attrib -h -s "HTG Locker"
rem 给文件夹减去隐藏(h)和系统(s)属性
ren "HTG Locker" Private
rem 给文件夹改名:将"HTG Locker"改为Private
echo Folder Unlocked successfully
goto End
:FAIL
echo Invalid password
goto end
:MDLOCKER
md Private
rem 创建一个文件夹Private
echo Private created successfully
goto End
:End
 

2、关于这个批处理中命令的几点说明

1)set命令用来显示环境变量的值,命令开关/p用来给变量赋值。

因为set/p 在接受用户输入前可先显示提示内容,故此还可当作显示命令用。和echo不同的是需要按回车才能继续,这一点和pause命令有点像。例如:

set /p a=输入一个数字:
set /p =按回车键继续    rem 仅作为显示命令使用时,可省略变量a

如果显示的内容有空格,就需要用引号(其实不用引号也可以,用上可以增加代码的可读性),例如:

set/p "pass=Please Input password:"

或者

set/p pass="Please Input password:"

此外,set/a命令可以给变量赋值一个运算结果,当变量需要数学运算时用set /a,例如:

set /a a=%a%+1
if %a%==255 exit

2)if语句里没有“或”和“与”这种操作,所以上面文件中用两个if语句来实现“或”,那么“与”该怎么写呢?

与:if 条件A if 条件B doing something

或:
if 条件A doing something
if 条件B doing something

你可能感兴趣的:(Windows应用)