国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
關(guān)于批處理的學(xué)習(xí)之七

如果您已從頭至尾完整地忍受過(guò)了前六章的基礎(chǔ),那么就讓我們來(lái)做一些更瘋狂的批處理吧……

7.1 坐在家里周游世界

沒(méi)錯(cuò),我想是認(rèn)真的,對(duì)于任何您想去往地球上的地點(diǎn),您所需要做的僅僅是提供一個(gè)目的地的經(jīng)緯度坐標(biāo)而已。當(dāng)然,我是不會(huì)給您提供去往世界各地的簽證和機(jī)票的,但是海量的衛(wèi)星照片還是能讓您過(guò)足了癮的。此時(shí)您手頭可能并沒(méi)有足夠的坐標(biāo)資源,不過(guò)我這里"恰好"有些陳芝麻爛谷子,是當(dāng)年在留園網(wǎng)上搜集的地理坐標(biāo),具體請(qǐng)參閱《關(guān)于Google Maps的趣點(diǎn)》。這里必須得先感謝衛(wèi)星圖片的提供者 Google Maps ,因?yàn)槟阒?,畢竟航拍衛(wèi)星并不是人人都能買(mǎi)的起的。

本小節(jié)也是在我回顧《關(guān)于Google Maps的趣點(diǎn)》這篇文章開(kāi)始的。因?yàn)楫?dāng)年在搜集這些該死的地理坐標(biāo)時(shí),偷了一些懶,結(jié)果有些是小數(shù)格式的,有些是度分秒格式的,查看起來(lái)并不方便。如果有 Google Earth 來(lái)轉(zhuǎn)換它們之間的格式倒也不難。但我知道,此時(shí)您的迅雷網(wǎng)快電驢里已經(jīng)排滿(mǎn)了各種各樣電影、游戲、動(dòng)漫的下載任務(wù),看來(lái)您并沒(méi)有下載 Google Earth 的意思。沒(méi)關(guān)系,下面這個(gè)批處理多少能讓您更方便地瀏覽 Google Maps 上的衛(wèi)星照片。

::::::坐在家里周游世界.bat::::::
@echo off
title 坐在家里周游世界
:: 設(shè)置標(biāo)題
:Start
cls
:: 清屏
set choice=1
set /p choice=請(qǐng)選擇經(jīng)緯度格式(1. 小數(shù)格式 2. 度分秒格式 3. 退出):
:: 選擇經(jīng)緯度的格式 或 退出程序
if %choice%==3 goto :EOF
if %choice%==2 goto :DMSFormat

:DecimalFormat
:: 小數(shù)格式的經(jīng)緯度處理
set latitude=39.906477
set longitude=116.391467
:: 初始化為偉大首都天安門(mén)的坐標(biāo)
set /p latitude=緯度:
set /p longitude=經(jīng)度:
:: 提示用戶(hù)輸入目標(biāo)的經(jīng)緯度 [注1]
goto :LaunchMap

:DMSFormat
:: 度分秒格式的經(jīng)緯度處理
set "DMSlatitude=39 54 23 N"
set /a degree=39
set /a minute=54
set /a second=23
set NorthOrSouth=N
:: 初始化為美麗首都天安門(mén)度分秒格式的緯度
echo.
set /p DMSlatitude=緯度(格式 [度] [分] [秒] [N ^| S]):
:: 提示用戶(hù)輸入目標(biāo)的緯度 [注2]
for /f "tokens=1,2,3,4,5" %%i in ("%DMSlatitude%") do (
    set degree=%%i
    set minute=%%j
    set second=%%k
    set NorthOrSouth=%%l
    if "%%l"=="" echo 不正確的格式 & goto :DMSFormat
)
:: 分別獲得緯度的度、分、秒,以及南半球或北半球
if %degree% lss 0 echo 緯度必須大于0度 或不正確的格式 & goto :DMSFormat
if %degree% gtr 90 echo 緯度必須小于90度 或不正確的格式 & goto :DMSFormat
if %minute% lss 0 echo 緯度必須大于0分 或不正確的格式 & goto :DMSFormat
if %minute% gtr 60 echo 緯度必須小于60分 或不正確的格式 & goto :DMSFormat
if %second% lss 0 echo 緯度必須大于0秒 或不正確的格式 & goto :DMSFormat
if %second% gtr 60 echo 緯度必須小于60秒 或不正確的格式 & goto :DMSFormat
:: 判斷緯度的度、分、秒格式是否有效 [注3]
set /a degree*=3600
set /a minute*=60
set /a second=%degree%+%minute%+%second%
set /a latitude=%second%*2500/9
:: 將度分秒計(jì)算并轉(zhuǎn)換為小數(shù)格式 [注4]
if %NorthOrSouth%==N goto :LatitudeLockDown
if %NorthOrSouth%==n goto :LatitudeLockDown
if %NorthOrSouth%==S set /a latitude=0-%latitude% & goto :LatitudeLockDown
if %NorthOrSouth%==s set /a latitude=0-%latitude% & goto :LatitudeLockDown
:: 判斷南北半球格式是否有效
echo 南北半球標(biāo)識(shí)不明確,請(qǐng)使用 N 或 S 來(lái)表示,不區(qū)分大小寫(xiě)。 & goto :DMSFormat

:LatitudeLockDown
set "DMSlongitude=116 23 29 E"
set /a degree=116
set /a minute=23
set /a second=29
set EastOrWest=E
:: 初始化為可愛(ài)首都天安門(mén)度分秒格式的經(jīng)度
echo.
set /p DMSlongitude=經(jīng)度(格式 [度] [分] [秒] [E ^| W]):
:: 提示用戶(hù)輸入目標(biāo)的經(jīng)度
for /f "tokens=1,2,3,4" %%i in ("%DMSlongitude%") do (
    set degree=%%i
    set minute=%%j
    set second=%%k
    set EastOrWest=%%l
    if "%%l"=="" echo 不正確的格式 & goto :LatitudeLockdown
)
:: 分別獲得經(jīng)度的度、分、秒,以及東半球或西半球
if %degree% lss 0   echo 經(jīng)度必須大于0度 或不正確的格式   & goto :LatitudeLockDown
if %degree% gtr 180 echo 經(jīng)度必須小于180度 或不正確的格式 & goto :LatitudeLockDown
if %minute% lss 0   echo 經(jīng)度必須大于0分 或不正確的格式   & goto :LatitudeLockDown
if %minute% gtr 60 echo 經(jīng)度必須小于60分 或不正確的格式 & goto :LatitudeLockDown
if %second% lss 0   echo 經(jīng)度必須大于0秒 或不正確的格式   & goto :LatitudeLockDown
if %second% gtr 60 echo 經(jīng)度必須小于60秒 或不正確的格式 & goto :LatitudeLockDown
:: 判斷經(jīng)度的度、分、秒格式是否有效
set /a degree*=3600
set /a minute*=60
set /a second=%degree%+%minute%+%second%
set /a longitude=%second%*2500/9
:: 將度分秒計(jì)算并轉(zhuǎn)換為小數(shù)格式
if %EastOrWest%==E goto :LongitudeLockDown
if %EastOrWest%==e goto :LongitudeLockDown
if %EastOrWest%==W set /a longitude=0-%longitude% & goto :LongitudeLockDown
if %EastOrWest%==w set /a longitude=0-%longitude% & goto :LongitudeLockDown
:: 判斷東西半球格式是否有效
echo 東西半球標(biāo)識(shí)不明確,請(qǐng)使用 E 或 W 來(lái)表示,不區(qū)分大小寫(xiě)。 & goto :LatitudeLockDown

:LongitudeLockDown
set latitude=%latitude:~0,-6%.%latitude:~-6%
set longitude=%longitude:~0,-6%.%longitude:~-6%
:: 整理緯度和經(jīng)度

:LaunchMap
echo.
set /a zoom=16
set /p zoom=放縮度(0~18 默認(rèn)值:%zoom%):
:: 提示用戶(hù)輸入照片的放縮值
echo.
echo 正在打開(kāi) 緯度:%latitude% 經(jīng)度:%longitude% 的衛(wèi)星照片...
start "正在打開(kāi)Google Maps..." "http://maps.google.com/?t=k&z=%zoom%&ll=%latitude%,%longitude%"
:: 將放縮值和經(jīng)緯度值作為 Google Maps 鏈接參數(shù),打開(kāi)相應(yīng)的照片 [注5]

pause
goto :Start
::::::::::::::::::::::::::::::::

注1. 緯度或經(jīng)度盡量能精確到小數(shù)點(diǎn)后3位數(shù)以上,因?yàn)樵骄_的坐標(biāo)越能準(zhǔn)確地幫您找到目標(biāo)的位置

注2. 度分秒格式的緯度(或經(jīng)度)您大概并不陌生,如果高中時(shí)代的您沒(méi)有選擇在地理課上逃課的話。例如 39°54' 23.32" N 就表示北緯39度54分23.32秒。另外,正在上高中的朋友在政治課上可以適當(dāng)?shù)芈N課,個(gè)人研究表明,政治這玩意學(xué)多了不利于青少年大腦的發(fā)育。

注3. 緯度不能超過(guò)90度,而經(jīng)度不能超過(guò)180度,分和秒的范圍是0~59,這些常識(shí)是絕不會(huì)難到您的。

注4. 經(jīng)緯度從度分秒格式轉(zhuǎn)換為小數(shù)格式只需要:(度*60*60+分*60+秒)/60/60 即可,北緯39度54分23.32秒轉(zhuǎn)換為小數(shù)即39.906477度。事實(shí)上,此處latitude的值是實(shí)際緯度的一百萬(wàn)倍,因?yàn)镈OS命令中并不支持浮點(diǎn)型(實(shí)數(shù))的變量,不用擔(dān)心,在后面會(huì)有小數(shù)點(diǎn)向前移動(dòng)6位的處理。同時(shí),希望您也沒(méi)有在數(shù)學(xué)課上翹課的習(xí)慣。

注5. 該鏈接正指向此時(shí)經(jīng)緯度和放縮值的衛(wèi)星地圖,其中具體參數(shù)的含義可以參考《關(guān)于Google Maps的趣點(diǎn)》文中的解釋。

好吧,您可能已經(jīng)迫不及待地想試試這東西了。那么在運(yùn)行該批處理后,首先您會(huì)得到選擇兩種經(jīng)緯度類(lèi)型的提示。選1的話,只需要分別輸入小數(shù)格式的緯度和精度,以及放縮值即可(如果您還不確定放縮值是啥東西的話,可以置空直接使用默認(rèn)值)。
如果在程序的一開(kāi)始選擇了2,也就是度分秒格式的經(jīng)緯度。比如我們的目的地是:北緯15°17' 55" ,東經(jīng)19°25' 47" ,您可以依次在緯度和經(jīng)度里輸15 17 55 n19 25 47 e ,然后在放縮值里填上 22 。這樣您就能看到北非中部一個(gè)小村莊里的幾位村民,以及他們的奶牛和駱駝。

 

 

 

 


圖7-1 坐在家里周游世界.bat 的運(yùn)行界面

 


圖7-2 坐在家里周游世界.bat 的運(yùn)行結(jié)果

 

 

 

事實(shí)上,上面的照片是 Google Maps 中罕見(jiàn)的幾張高清衛(wèi)星照片之一,并不是每張照片的放縮值都能達(dá)到23滴,因?yàn)槟阋仓?,即使是能買(mǎi)得起航拍衛(wèi)星的家伙,也是沒(méi)有足夠的資金和精力來(lái)把地球的每一個(gè)角落都拍得一清二楚的。[創(chuàng)作日期:2008-03-10]

========================================樸實(shí)的分割線========================================

 

 

 

 

 

7.2 進(jìn)程分析者

寫(xiě)了一篇很簡(jiǎn)單卻又很占篇幅的玩意,被我稱(chēng)之為"進(jìn)程分析者"。此批處理的構(gòu)思很輕松,只是簡(jiǎn)單地使用 tasklist 列出所有的進(jìn)程,再顯示為容易理解的文字說(shuō)明而已。這與任務(wù)管理器中的進(jìn)程相比,除了易于識(shí)別以外,還能幫您鑒別出那些喜歡"偷梁換柱"的隱患進(jìn)程。比如用肉眼去觀察 winhlep.exe 或 winhe1p.exe 的時(shí)候很容易忽視它們,而使用"進(jìn)程分析者"卻不會(huì)。

:::::::::進(jìn)程分析者.bat:::::::::
@echo off
setlocal enabledelayedexpansion

title 進(jìn)程分析者
set SPACE=                     
set /a NumOfTotal=0
set /a NumOfSafe=0
set /a NumOfNasty=0
set /a NumOfUnknown=0
set IconOfSafe=√
set IconOfNasty=×
set IconOfUnknown=?

:::::::: 以下定義為可信任的進(jìn)程,可自定義更多的擴(kuò)充 ::::::::
:: 1. 系統(tǒng)進(jìn)程

set alg.exe=%IconOfSafe%處理Windows網(wǎng)絡(luò)連接共享和網(wǎng)絡(luò)連接防火墻[系統(tǒng)進(jìn)程]
set csrss.exe=%IconOfSafe%管理Windows圖形相關(guān)任務(wù)[系統(tǒng)進(jìn)程]
set explorer.exe=%IconOfSafe%用于顯示系統(tǒng)桌面的圖標(biāo),任務(wù)欄等[系統(tǒng)進(jìn)程]
set lsass.exe=%IconOfSafe%用于本地安全和登陸策略[系統(tǒng)進(jìn)程]
set services.exe=%IconOfSafe%管理啟動(dòng)和停止服務(wù)[系統(tǒng)進(jìn)程]
set smss.exe=%IconOfSafe%用于對(duì)話管理子系統(tǒng)調(diào)用和系統(tǒng)對(duì)話操作[系統(tǒng)進(jìn)程]
set spoolsv.exe=%IconOfSafe%用于將打印機(jī)任務(wù)發(fā)送到本地打印機(jī)[系統(tǒng)進(jìn)程]
set svchost.exe=%IconOfSafe%用于執(zhí)行動(dòng)態(tài)鏈接庫(kù)DLL文件[系統(tǒng)進(jìn)程]
set System=%IconOfSafe%[系統(tǒng)進(jìn)程]
set taskmgr.exe=%IconOfSafe%任務(wù)管理器,用于顯示系統(tǒng)正在運(yùn)行的進(jìn)程[系統(tǒng)進(jìn)程]
set winlogon.exe=%IconOfSafe%用于處理系統(tǒng)的登陸和登陸過(guò)程[系統(tǒng)進(jìn)程]
set winmgmt.exe=%IconOfSafe%用于系統(tǒng)管理員創(chuàng)建WIndows管理腳本[系統(tǒng)進(jìn)程]
:: 2. 基本進(jìn)程
set cmd.exe=%IconOfSafe%Windows系統(tǒng)的命令行程序
set msimn.exe=%IconOfSafe%OutlookExpress相關(guān)程序
set mspaint.exe=%IconOfSafe%畫(huà)圖板
set notepad.exe=%IconOfSafe%記事本
set wab.exe=%IconOfSafe%通訊薄,用于儲(chǔ)存地址、聯(lián)系人和Email
set ctfmon.exe=%IconOfSafe%提供語(yǔ)音識(shí)別、手寫(xiě)識(shí)別等
set conime.exe=%IconOfSafe%輸入法編輯器相關(guān)程序
set SOUNDMAN.EXE=%IconOfSafe%Realtek聲卡相關(guān)程序
set tasklist.exe=%IconOfSafe%這是本批處理的核心所在-_-b
set wmiprvse.exe=%IconOfSafe%用于通過(guò)WinMgmt.exe程序處理WMI操作
:: 3. 工作進(jìn)程
set EXCEL.EXE=%IconOfSafe%Excel
set WINWORD.EXE=%IconOfSafe%Word
set XDICT.EXE=%IconOfSafe%金山詞霸
set sqlservr.exe=%IconOfSafe%用于SQL基礎(chǔ)服務(wù)
set wmplayer.exe=%IconOfSafe%Windows Media Player
set Mplayerc.exe=%IconOfSafe%暴風(fēng)影音
set WinRAR.exe=%IconOfSafe%WinRAR
:: 4. 防護(hù)進(jìn)程
set 360tray.exe=%IconOfSafe%360安全衛(wèi)士實(shí)時(shí)監(jiān)控程序
set AntiArp.exe=%IconOfSafe%ARP防火墻
set CCenter.exe=%IconOfSafe%瑞星信息中心
set RavMonD.exe=%IconOfSafe%瑞星監(jiān)控程序
set rfwsrv.exe=%IconOfSafe%瑞星個(gè)人防火墻相關(guān)程序
set RavStub.exe=%IconOfSafe%瑞星殺毒軟件相關(guān)程序
set RfwMain.exe=%IconOfSafe%瑞星防火墻主程序
set RavTask.exe=%IconOfSafe%瑞星定時(shí)殺毒程序
set RavMon.exe=%IconOfSafe%瑞星監(jiān)控程序
:: 5. 網(wǎng)絡(luò)進(jìn)程
set iexplore.exe=%IconOfSafe%IE瀏覽器
set Maxthon.exe=%IconOfSafe%傲游瀏覽器
set BaiduHi.exe=%IconOfSafe%百度Hi
set msmsgs.exe=%IconOfSafe%MSN網(wǎng)絡(luò)聊天工具
set QQ.exe=%IconOfSafe%騰迅QQ
set TXPlatform.exe=%IconOfSafe%騰迅平臺(tái)
set Thunder5.exe=%IconOfSafe%迅雷下載
set Skype.exe=%IconOfSafe%Skype語(yǔ)音聊天
set Contentfilter.exe=%IconOfSafe%Skype的相關(guān)程序
set skypePM.exe=%IconOfSafe%Skype語(yǔ)音聊天

:::::::: 以下定義為已知的危險(xiǎn)進(jìn)程,可自定義更多的擴(kuò)充 ::::::::
set a.exe=%IconOfNasty%蠕蟲(chóng)
set av.exe=%IconOfNasty%蠕蟲(chóng)
set blss.exe=%IconOfNasty%木馬/撥號(hào)器
set cmd32.exe=%IconOfNasty%病毒
set crss.exe=%IconOfNasty%蠕蟲(chóng)
set csrse.exe=%IconOfNasty%病毒/木馬
set Desktop.exe=%IconOfNasty%木馬/病毒/間諜
set directs.exe=%IconOfNasty%蠕蟲(chóng)
set dllhlp.exe=%IconOfNasty%木馬
set dllreg.exe=%IconOfNasty%病毒
set explore.exe=%IconOfNasty%灰鴿子
set explored.exe=%IconOfNasty%蠕蟲(chóng)
set optimize.exe=%IconOfNasty%撥號(hào)器/廣告
set pcsvc.exe=%IconOfNasty%間諜
set rundll16.exe=%IconOfNasty%木馬
set run32dll.exe=%IconOfNasty%間諜
set scvhost.exe=%IconOfNasty%木馬/廣告
set svchosts.exe=%IconOfNasty%木馬
set system32.exe=%IconOfNasty%木馬
set updater.exe=%IconOfNasty%蠕蟲(chóng)
set web.exe=%IconOfNasty%病毒/木馬
set win32.exe=%IconOfNasty%病毒
set windows.exe=%IconOfNasty%蠕蟲(chóng)
set winlogin.exe=%IconOfNasty%病毒/木馬
set winstart.exe=%IconOfNasty%間諜/廣告
set wintsk32.exe=%IconOfNasty%病毒
set winupdate.exe=%IconOfNasty%病毒
set winxp.exe=%IconOfNasty%病毒
set winhlep.exe=%IconOfNasty%病毒

:::::::: 以下定義為未知的進(jìn)程 ::::::::
set UnknownTask=%IconOfUnknown%未識(shí)別的進(jìn)程

:: 程序開(kāi)始
echo 進(jìn)程名稱(chēng)               分析結(jié)果
echo.

for /f "tokens=1" %%i in ('tasklist /NH') do (
    set TaskName=%%i%SPACE%
    set TaskName=!TaskName:~0,20!
    if defined %%i (
        echo !TaskName! !%%i!
        if "!%%i:~0,1!"=="%IconOfNasty%" (
            set /a NumOfNasty+=1
        )
    ) else (
        echo !TaskName! %UnknownTask%
        set /a NumOfUnknown+=1
    )
    set /a NumOfTotal+=1
)
echo ________________________________________________________________
echo.
echo 共 %NumOfTotal% 個(gè)進(jìn)程。
if %NumOfNasty% gtr 0 (
    echo %NumOfNasty% 個(gè)存在安全隱患的進(jìn)程!
)
if %NumOfUnknown% gtr 0 (
    echo %NumOfUnknown% 個(gè)未知進(jìn)程。
)
pause>nul

::::::::::::::::::::::::::::::::

結(jié)果


圖7-3 進(jìn)程分析者.bat 的運(yùn)行結(jié)果

分析完畢![創(chuàng)作日期:2008-03-31]

========================================樸實(shí)的分割線========================================

 

 

7.3 公元2738年11月28日是星期幾[編寫(xiě)中]

公元2738和11月28日,是個(gè)好日子。我打賭您不知道這天究竟是星期幾而且您也并不想知道。

:::公元2738-11-28是星期幾.bat:::[β版]
@echo off
setlocal enabledelayedexpansion

:Initialization
:: 初始化

set TargetDate=%date:~0,4%%date:~5,2%%date:~8,2%
set /a Year = 0                                 & rem 年 范圍: 1~9999
set /a Mon = 0                                  & rem 月 范圍: 1~12
set /a Day = 0                                  & rem 日 范圍: 1~28 29 30 31
set /a IsLeapYear = 0                           & rem 是否閏年 范圍: 0~1

:PromptEntering
:: 提示輸入日期

set /p TargetDate=請(qǐng)輸入日期(格式: YYYYMMDD 例如: %TargetDate%):

:: 轉(zhuǎn)換為有效的年月日[注1]
if %TargetDate:~0,3% == 000 (
    set /a Year = %TargetDate:~3,1%
) else (
    if %TargetDate:~0,2% == 00 (
        set /a Year = %TargetDate:~2,2%
    ) else (
        if %TargetDate:~0,1% == 0 (
            set /a Year = %TargetDate:~1,3%
        ) else (
            set /a Year = %TargetDate:~0,4%
        )
    )
)
if %TargetDate:~4,1% == 0 (
    set /a Mon = %TargetDate:~5,1%
) else (
    set /a Mon = %TargetDate:~4,2%
)
if %TargetDate:~6,1% == 0 (
    set /a Day = %TargetDate:~7,1%
) else (
    set /a Day = %TargetDate:~6,2%
)

:CheckLeapYear
:: 檢測(cè)是否是閏年[注2]

set /a DivisionBy4   = %Year%%%4
set /a DivisionBy100 = %Year%%%100
set /a DivisionBy400 = %Year%%%400

if %DivisionBy4%   == 0 set /a IsLeapYear = 1   & rem 能被4整除的是閏年
if %DivisionBy100% == 0 set /a IsLeapYear = 0   & rem 能被100整除的非閏年
if %DivisionBy400% == 0 set /a IsLeapYear = 1   & rem 能被400整除的是閏年

set /a Month1 = 31
set /a Month2 = 28 + %IsLeapYear%
set /a Month3 = 31
set /a Month4 = 30
set /a Month5 = 31
set /a Month6 = 30
set /a Month7 = 31
set /a Month8 = 31
set /a Month9 = 30
set /a Month10= 31
set /a Month11= 30
set /a Month12= 31

:: 檢測(cè)范圍是否有效[注3]
if %Year% lss 1    echo 年份應(yīng)該大于0    & goto :Initialization
if %Year% gtr 9999 echo 年份不能超過(guò)9999 & goto :Initialization
if %Mon% lss 1    echo 月份不能小于1    & goto :Initialization
if %Mon% gtr 12   echo 月份不能大于12   & goto :Initialization
if %Day% lss 1    echo 日數(shù)不能小于1    & goto :Initialization
if %Day% gtr 31   echo 日數(shù)不能大于31   & goto :Initialization
if %IsLeapYear% == 0 (
    if %Mon%%Day% == 229 echo %Year%年的2月沒(méi)有29日 & goto :Initialization
)
if %Day% gtr !Month%Mon%! echo %Mon%月沒(méi)有%Day%日 & goto :Initialization

:: 開(kāi)始計(jì)算天數(shù)
set /a Year -= 1                                & rem 該年未結(jié)束,應(yīng)減一年
set /a Day = %Day% + Year * 365                 & rem 一年365天
set /a Day = %Day% + Year/4                     & rem 每4年多一閏
set /a Day = %Day% - Year/100                   & rem 可每100年少一閏
set /a Day = %Day% + Year/400                   & rem 但每400年還多一閏

set /a Mon -= 1                                 & rem 該月未結(jié)束,應(yīng)減一月
for /l %%i in (1,1,%Mon%) do (
    set /a Day = !Day! + !Month%%i!             & rem 累計(jì)前幾月的天數(shù)
)

:: 計(jì)算星期
set /a Week = %Day%%%7                          & rem 除7得余數(shù)
set WeekChars=日一二三四五六
set Week=!WeekChars:~%Week%,1!                  & rem 換成漢字

:: 顯示結(jié)果
echo.
echo %TargetDate:~0,4%年%TargetDate:~4,2%月%TargetDate:~6,2%日,是公元第%Day%天,星期%Week%
echo ___________________________________________
echo. & pause>nul & goto :Initialization
::::::::::::::::::::::::::::::::

注1 正如第三章關(guān)于 set 為變量賦予數(shù)值型的值所說(shuō)的,如果數(shù)值是以 0 開(kāi)頭的,那么該數(shù)值便是八進(jìn)制的。這并不是我們所期望,因此對(duì)變量的首位數(shù)非零的檢測(cè)是必要的。

注2 閏年每隔四年來(lái)一次,這是眾所周知的,但它并不完全正確。因?yàn)橐荒昙s為365.24219天,因此閏年將遵循于“四年一閏,百年不閏,四百年再閏”的規(guī)則。

注3 每個(gè)月的天數(shù)并不固定,但它們都在28~31這個(gè)范圍內(nèi)。

公元2738年11月28日是星期一,跟 Garfield 一樣,我也討厭星期一。[創(chuàng)作日期:2008-04-15]

========================================樸實(shí)的分割線========================================

 

 

 

7.4 163郵箱登錄器之不顯示密碼篇

還記得我們?cè)?.4節(jié)中所提到過(guò)的163信箱登錄的問(wèn)題嗎,那是一個(gè)不錯(cuò)的小批處理。不過(guò)那個(gè)批處理存在著一個(gè)小小的缺憾:在輸入密碼時(shí),密碼會(huì)暴露無(wú)遺地直接顯示在屏幕上,這對(duì)于注重個(gè)人隱私的您來(lái)說(shuō),顯然是無(wú)法接受的。

:::::::163郵箱登錄器.bat::::::::
@echo off
title 163郵箱登錄器
mode con cols=80 lines=25
::設(shè)置窗口的尺寸

set /p username=用戶(hù)名:
cls

chcp 437>nul
graftabl 936>nul
:: 轉(zhuǎn)換代碼頁(yè)編號(hào)為 936

echo 用戶(hù)名: %username%
set /p =密 碼: <nul

echo hP1X500P[PZBBBfh#b##fXf-V@`$fPf]f3/f1/5++u5x>in.com
:: 創(chuàng)建一個(gè)神奇的二進(jìn)制可執(zhí)行文件
for /f "tokens=*" %%i in ('in.com') do set password=%%i
:: 在那個(gè)神奇的文件被執(zhí)行完返回結(jié)果之前,不顯示任何東西
del in.com

setlocal EnableDelayedExpansion
for /l %%i in (0,1,255) do (
    if not "!password:~%%i,1!"=="" (
        set /p =*<nul
    ) else (
        endlocal
        goto :LoginMail
    )
)
endlocal
:: 計(jì)算密碼長(zhǎng)度,然后顯示相應(yīng)個(gè)數(shù)的星號(hào)

:LoginMail

start "正在登錄郵箱" "https://reg.163.com/logins.jsp?username=%username%&password=%password%&url=http://fm163.163.com/coremail/fcg/ntesdoor2"

echo.
echo 正在登錄郵箱...
ping -n 2 127.0>nul
:: 等待一小段時(shí)間

::::::::::::::::::::::::::::::::

備注:本小節(jié)尚存在問(wèn)題待解決(輸入密碼時(shí)使用退格會(huì)被當(dāng)作字符記錄下來(lái),不輸入任何東西則將顯示Invalid keyboard code specified)……

[本節(jié)完成日期未知]

 

 

參考:
[1]
GoogleMaps Google Maps
[2]
進(jìn)程知識(shí)庫(kù) KnowSky
[3]
【批處理】分析進(jìn)程 批處理吧
[4] 萬(wàn)年歷查詢(xún) 百度網(wǎng)站
[5] 1900年有沒(méi)有2月29日 百度知道

目錄:
批處理的學(xué)習(xí)之一[前言]
批處理的學(xué)習(xí)之二[顯示篇]
批處理的學(xué)習(xí)之三[賦值 調(diào)用 參數(shù)]
批處理的學(xué)習(xí)之四[條件 循環(huán)]
批處理的學(xué)習(xí)之五[組合命令 管道命令]
批處理的學(xué)習(xí)之六[常用實(shí)例 上]
批處理的學(xué)習(xí)之七[常用實(shí)例 下]
批處理的學(xué)習(xí)之八[番外篇]

上次編輯 2008-09-05

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
建立個(gè)O盤(pán),隱藏你的好東東
批處理中的多種注釋方法
問(wèn)題詳情
蜀門(mén)終極掉線避免方法【另帶掉線檢測(cè)提醒工具】
DOS中判斷進(jìn)程是否存在的方法
cmd bat 批處理設(shè)置 IP
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服