一個無需軟件加密文件夾的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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章