iT邦幫忙

0

詢問:批次檔的設計與技巧.

  • 分享至 

  • xImage

請教批次檔
就是副檔名是.BAT 那個東東
我想寫支程式
執行一些例行性的批次動作
但是在一開始前
要加個密碼
就是進入批次程式前
RUN 一個密碼程式
當密碼正確時
才可以執行
若密碼錯誤時
則結束BAT 程式

請教: 該如何著手..謝謝謝謝

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
6
hon2006
iT邦大師 1 級 ‧ 2014-03-25 11:51:41
最佳解答

可是密碼都寫在 bat 檔中,只能防呆子啦

有沒有寫法是不把密碼公開在BAT檔裡的呢..無言

藉時,我會把BAT轉成捷徑, 所以.., 真得只是要防呆子啦..冷

2

既然是

heyday提到:
例行性的批次動作

那密碼輸入這個流程不是挺怪的?! @@

看更多先前的回應...收起先前的回應...

deanya提到:
那密碼輸入這個流程不是挺怪的?

預防好心的同事幫我分耽工作..臉紅

u8526425 iT邦大師 1 級 ‧ 2014-03-25 15:51:30 檢舉

嚴格設定檔案允許執行權限

heyday提到:
預防好心的同事幫我分耽工作

果然很符合你的調調,
讓我想起前同事的名言 => 新功能除了可以解決原來的一個問題, 還可以再帶來兩個新問題 => 不怕沒事做...

deanya提到:
果然很符合你的調調,

你可以兼職去算命了..., 心事都被看穿了...汗

deanya提到:
新功能除了可以解決原來的一個問題, 還可以再帶來兩個新問題 =

每當程式有新功能, 就是我要Debug,寫test Report的時後了...無言

10
guessing1019
iT邦新手 4 級 ‧ 2014-03-25 17:13:23
<pre class="c" name="code">@echo off
:menu
cls
echo.
echo  ================             
echo.
echo     1.建立密碼  
echo.                
echo     2.執行程式  
echo.
echo     3.更改密碼
echo.                 
echo  ================
echo.
set /p me="請選擇: "
if "%me%"=="1" goto pwd1
if "%me%"=="2" goto pwd2
if "%me%"=="3" goto pwd5
cls
echo.
echo 輸入錯誤 請重新選擇
echo.
pause
goto  menu

:pwd1
if not exist pd goto pwd3
if exist pd goto pwd4
goto end

:pwd2
cls
set pwd=""
set time=5
echo.
echo 請輸入你建立的密碼...
echo.
Set /p PWD="請輸入密碼: "
if %pwd%=="" goto pwd7
attrib -h -r pd1 >nul
echo %pwd% >pd1
attrib +h +r pd1 >nul
fc pd pd1 >nul 
if errorlevel 2 goto pwd7
if errorlevel 1 goto pwd7
if errorlevel 0 goto pwd6
goto end

:pwd3
cls
set pd=""
echo.
echo 請輸入要建立的密碼...
echo.
set /p pd="請輸入新密碼: "
if %pd%=="" goto pwd8
attrib -h -r pd >nul
echo %pd% >pd
attrib +h +r pd >nul
goto menu

:pwd4
cls
echo.
echo 請輸入你的舊密碼
echo.
set /p pd2="請輸入舊密碼: "
attrib -h -r pd2 >nul
echo %pd2% >pd2
attrib +h +r pd2 >nul
fc pd pd2 >nul 
if errorlevel 2 goto pwd7
if errorlevel 1 goto pwd7
if errorlevel 0 goto pwd3
goto end

:pwd5
if not exist pd goto pwd3
if exist pd goto pwd4
goto end

:pwd6
echo.
echo 『把要執行的程式放在這裡(pwd6)!!!』
echo.
goto end

:pwd7
cls
echo.
echo  ************************************
echo  *                                  *
echo  *  密碼錯誤 請重新輸入正確的密碼! *
echo  *                                  *
echo  ************************************
echo.
echo.
pause
goto menu

:pwd8
cls
echo.
echo  ************************************
echo  *                                  *
echo  *  密碼空白 請重新輸入正確的密碼! *
echo  *                                  *
echo  ************************************
echo.
echo.
pause
goto menu

:end

試看看這個 把密碼放在其他的檔案裡並隱藏起來
在用比對的方式 來驗證密碼
密碼建立起來後 直接在 @echo off 底下加入 goto pwd2
就不會在出現選單了
把要執行的程式路徑放在 :pwd6 下就可以了
小弟不才 有錯誤的地方在請高手幫忙改囉!!

fc pd pd1 >nul

這支程式需要FC的外部程式判斷, 不論將密碼檔藏在那裡,.
移除這支程式就沒有密碼的功用了..泡湯

2
不明

限制執行該批次檔案權限應該是較好的解法
但是將執行的指令放在.BAT裡頭,對方只要打開.BAT內容還是被看光光
最好還是先封裝成EXE檔比較好,並將該EXE檔設成只有自己有執行權限(手動執行)
另外,也可將EXE檔設在WINDOWS的工作排程(可自動執行),並設定執行身份(設成自己)

shinpin_yeh提到:
並將該EXE檔設成只有自己有執行權限(手動執行)

我們的電腦, 每個帳號都是Admin的權限, 怎麼設成只有自己可執行的權限..囧

CalvinKuo iT邦大師 7 級 ‧ 2014-03-26 11:36:53 檢舉

heyday 提到:
每個帳號都是Admin的權限

那是本機 admin吧,你會把網域其他帳號加到你的本機admin群組嗎?還是每個帳號都是Domain admin?
檔案系統要用 NTFS,才有安全性可以設定...

唉~~ 不管怎麼防,都一樣。在老闆面前黑掉,他高興用2~3個人取代你的工作也行...

calvinkuo提到:
檔案系統要用 NTFS,才有安全性可以設定...

sorry,我這沒架server,都是client., XP與7, 有解嗎..汗

2
mmmnnnbbb
iT邦新手 4 級 ‧ 2014-03-26 16:30:33
ctipde iT邦高手 1 級 ‧ 2014-03-27 16:52:48 檢舉

發現加密後不能解密驚

我要發表回答

立即登入回答