查看單個文章
舊 2006-10-11, 07:47 AM   #3 (permalink)
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

自動關機程式.bat

雖然大家學過了一些Windows的命令,但用批處理來與用戶交互並實現自動關機可能還沒有試過吧.自己做一個關機程式,感覺可不一樣.下面我們就利用Windows 的批處理腳本,來實現自動關機的功能,程式不算複雜,功能可一點都不少哦!本程式在Windows xp/2000/2003環境下測試通過.
第一步:
打開記事本,輸入下面的文字(以rem開頭的語句是註釋,可以不必輸入).


@ECHO off
TITLE 自動關機程式 作者:廖曉青

:start
CLS
COLOR 1f
rem 使用COLOR命令對控制台輸出顏色進行更改
MODE con: COLS=41 LINES=18
rem MODE語句為設定窗體的寬和高
set tm1=%time:~0,2%
set tm2=%time:~3,2%
set tm3=%time:~6,2%
ECHO %date% %tm1%點%tm2%分%tm3%秒
ECHO =========================================
ECHO 請選擇要進行的操作,然後按Enter鍵
ECHO ───────────────
ECHO.
ECHO 1. 定時關機
ECHO 2. 倒計時關機
ECHO 3. 刪除定時關機任務
ECHO 4. 檢視任務狀態
ECHO 5. 重新整理當前時間
ECHO 6. 重新啟動
ECHO 7. 鎖定電腦
ECHO 8. 登出
ECHO 9. 退出
ECHO.

:cho
SET Choice=
SET /P Choice=選擇:
rem 設定變數"Choice"為用戶輸入的字元
IF NOT "%Choice%"=="" SET Choice=%Choice:~0,1%
rem 如果輸入大於1位,取第1位,比如輸入132,則返回值為1
ECHO.
IF /I "%Choice%"=="1" GOTO SetHour
IF /I "%Choice%"=="2" GOTO outtime
IF /I "%Choice%"=="3" GOTO delAt
IF /I "%Choice%"=="4" GOTO view
IF /I "%Choice%"=="5" GOTO start
IF /I "%Choice%"=="6" GOTO restart
IF /I "%Choice%"=="7" GOTO lock
IF /I "%Choice%"=="8" GOTO logoff
IF /I "%Choice%"=="9" GOTO end
rem 為避免出現返回值為空或含空格而導致程式異常,需在變數外另加雙引號
rem 注意,IF語句需要雙等於號
rem 如果輸入的字元不是以上數位,將返回重新輸入
ECHO 選擇無效,請重新輸入
ECHO.
GOTO cho

:SetHour
CLS
ECHO.
SET ask=
SET /p ask=是否設定為每天執行關機命令(y/n):
IF NOT "%ask%"=="" SET ask=%ask:~0,1%
IF /I "%ask%"=="y" GOTO yes
IF /I "%ask%"=="n" GOTO no
GOTO SetHour

:yes
ECHO 請指定24小時制式時間,格式為 小時:分鐘
SET shutdowntime=
SET /p shutdowntime=輸入:
at %shutdowntime% /every:M,T,W,Th,F,S,Su tsshutdn 0 /delay:0 /powerdown >nul
rem 設定為每週的星期一至星期日,即為每天
IF NOT errorlevel 1 GOTO ok
rem 如果輸入正確,就執行ok段的語句
ECHO %shutdowntime% 不是標準的時間格式,請重新輸入
ECHO.
GOTO yes

:no
ECHO 請指定24小時制式時間,格式為 小時:分鐘
SET shutdowntime=
SET /p shutdowntime=輸入:
at %shutdowntime% tsshutdn 0 /delay:0 /powerdown >nul
IF NOT errorlevel 1 GOTO ok
ECHO %shutdowntime% 不是標準的時間格式,請重新輸入
ECHO.
GOTO no

k
ECHO.
SET h=%shutdowntime:~1,1%
SET ah=%shutdowntime:~0,1%
SET am=%shutdowntime:~2,2%
SET bh=%shutdowntime:~0,2%
SET bm=%shutdowntime:~3,2%
IF "%h%"==":" (
SET HM=%ah%時%am%分
) ELSE (
SET HM=%bh%時%bm%分)
rem 如果輸入h:mm則HM=h時mm分,否則HM=hh時mm分
IF /I "%ask%"=="y" ECHO 系統將於每天的%HM%關閉
IF /I "%ask%"=="n" ECHO 系統將於%HM%關閉
ECHO 設定完畢! 按任意鍵繼續...
PAUSE >nul
GOTO start

uttime
CLS
ECHO.
ECHO 請輸入倒計時秒數
ECHO ────────
ECHO (設定後要取消,單擊"確定"後按Ctrl+C鍵兩次)
SET timed=
SET /p timed=輸入:
tsshutdn %timed% /delay:0 /powerdown >nul
IF not errorlevel 1 GOTO ok
ECHO %timed% 是無效的關機時間,請重新輸入
ECHO.
GOTO outtime

:delAt
cls
echo.
at /del /y
echo 定時關機任務已取消,按任意鍵繼續...
pause >nul
GOTO start

:view
MODE con: COLS=85 LINES=18
COLOR 70
ECHO.
at
ECHO 按任意鍵繼續...
PAUSE >nul
GOTO start

:restart
shutdown -r -t 0

:lock
rundll32.exe user32.dll,LockWorkStation
goto start

:logoff
logoff

:end
exit

第二個版本的:

@echo off
title 自動關機程式 作者:青劍
rem 這裡改成你的名字好了
color 17
rem 如果你不喜歡命令行預定的黑底白字模式,可以用color命令進行更改,上面"17"代表藍底白字.
:start
echo.
echo.
echo 請選擇要進行的操作,然後按Enter鍵:
echo.
echo 1. 定時關機
echo 2. 倒計時關機
echo 3. 刪除定時關機任務
echo 4. 檢視定時關機任務狀態
echo 5. 登出
echo 6. 退出
echo.
:set
SET a=
SET /P a=選擇:
rem 設定變數"a"為用戶輸入的字元
IF NOT '%a%'=='' SET a=%a:~0,1%
ECHO.
IF /I '%a%'=='1' goto 1
IF /I '%a%'=='2' goto 2
IF /I '%a%'=='3' goto 3
IF /I '%a%'=='4' goto 4
IF /I '%a%'=='5' goto 5
IF /I '%a%'=='6' goto 6
rem 如果輸入的字元不是1-6,將返回重新輸入
echo %a% 選擇無效,請重新輸入:
echo.
goto set
:1
echo 請輸入關機時間,(如12:00:00)
set shutdowntime=
set /p shutdowntime=
at %shutdowntime% tsshutdn 0 /delay:0 /powerdown >nul
IF not errorlevel 1 goto ok
rem 如果輸入正確,就執行k後面的語句
echo %shutdowntime% 不是標準的時間格式,請重新輸入
echo.
goto 1
k
echo.
echo 設定完畢! 按任意鍵繼續...
pause >nul
cls
goto start
:2
echo 您想要多少秒後關機
echo (若設定後要取消,單擊"確定"後按Ctrl+C鍵兩次)
set timed=
set /p timed=輸入:
tsshutdn %timed% /delay:0 /powerdown >nul
IF not errorlevel 1 goto ok
echo %timed% 是無效的關機時間,請重新輸入
echo.
goto 2
:3
at /del /y
echo 定時關機任務已取消,按任意鍵繼續...
pause >nul
cls
goto start
:4
at
echo 按任意鍵繼續...
pause >nul
cls
goto start
:5
logoff
:6
exit
第二步:
輸入完畢後,儲存文件,在"儲存"交談視窗中將"儲存類型"選擇為"所有文件",文件名為"自動關機程式.bat"即可.
第三步:
看看這個程式的後綴名是bat的,而且圖示也很土,不要急,我們可以用WinRAR3.0以上版本將這個批處理文件做成一個exe文件,方法如下:
如果你的系統未安裝WinRAR請先安裝
選擇"自動關機程式.bat",在右鍵表表菜單中選擇"新增到檔案文件(A)…"
在"壓縮選項"中選擇"創建自解釋放格式檔案文件"
單擊"高階"標籤,單擊"SFX選項",打開"高階自解釋放選項"在"一般"選擇項中"釋放後執行"內輸入壓縮的文件名"自動關機程式.bat"
單擊"模式"標籤,選擇"解包到臨時資料夾",在緘默模式"內選擇"全部隱藏",在"覆蓋方式"內選擇"覆蓋所有文件"
如果您要更改預定的圖示,可以打開"文本和圖示"標籤,在"自定義SFX文件圖示"的"從文件載入SFX圖示"下的文本框中輸入或瀏覽您喜歡的圖示所在路徑.如果你沒有準備圖示,可以打開系統所在盤後,使用搜索,在搜索文件名內輸入"*.ico"就可以找到很多圖示了,把找到的圖示路徑和文件名輸入文本框即可.
依次確定後,即在原資料夾內多了一個"自動關機程式.exe"的文件了,大功現已造成啦!
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
有 3 位會員向 psac 送花:
nismo227 (2006-11-17),tommy83111 (2006-11-14),羅迪 (2006-11-16)
感謝您發表一篇好文章