2010年4月17日 星期六

透過bat分析目前的路徑

%cd%
當前目錄

%~dp0
目前正在運行的批次檔的所在目錄

%~sdp0
目前正在運行的批次檔的所在的目錄的短名稱

main.bat

@echo off 
SET MYPATHCOPY=%CD%
:search
for /f "delims=\ tokens=1,*" %%p in ("%MYPATHCOPY%") do (
@echo %%~p
SET MYPATHCOPY=%%~q\
)
if "%MYPATHCOPY%"=="\" goto done
goto search
:done
pause

可以把目前的路徑以"\"為分隔,把每一個目錄列出來

可以得知目前所在的資料夾,與目前所在的資料夾的路徑
main.bat
@echo off 
SET Count=0
SET MYPATHCOPY=%cd%
:search
for /f "delims=\ tokens=1,*" %%p in ("%MYPATHCOPY%") do (
@echo %%~p
set /A Count=%Count%+1
SET MYPATHCOPY=%%~q\
)
if "%MYPATHCOPY%"=="\" goto done
goto search
:done
echo %Count%
set /A PreCount=%Count%-1

SET MYPATHCOPY=%cd%
SET index=0
:search1
for /f "delims=\ tokens=1,*" %%p in ("%MYPATHCOPY%") do (
set /a index=%index%+1
echo %index%
if %index% LSS %PreCount% (
if %index% EQU 0 (
SET SOURCE_ROOT=%%~p
) ELSE (
SET SOURCE_ROOT=%SOURCE_ROOT%\%%~p
)
) ELSE (
SET PROJECT_NAME=%%~p
)
SET MYPATHCOPY=%%~q\
)
if "%MYPATHCOPY%"=="\" goto done1
goto search1
:done1
echo %SOURCE_ROOT%
echo %PROJECT_NAME%

pause


最後可以整合成以下的精簡的程式碼
main.bat
@ECHO OFF

REM ===========================================================================
REM ==== GET THE SOURCE_ROOT, PROJECT_NAME AND BUILD_TIP ======================
SET MYPATHCOPY=%CD%
SET TEMP_SOURCE_ROOT=.\
SET TEMP_PROJECT_NAME=.\
SET TEMP_BUILD_TIP1=.\
SET TEMP_BUILD_TIP2=.\
SET TEMP_BUILD_TIP3=.\
:SEARCH
FOR /F "delims=\ tokens=1,*" %%p IN ("%MYPATHCOPY%") DO (
SET TEMP_BUILD_TIP1=%TEMP_BUILD_TIP2%
SET TEMP_BUILD_TIP2=%TEMP_BUILD_TIP3%
SET TEMP_BUILD_TIP3=%%~p
IF "%TEMP_BUILD_TIP1%" NEQ ".\" (
IF "%TEMP_PROJECT_NAME%"==".\" (
SET TEMP_PROJECT_NAME=%TEMP_BUILD_TIP1%
) ELSE (
IF "%TEMP_SOURCE_ROOT%"==".\" (
SET TEMP_SOURCE_ROOT=%TEMP_PROJECT_NAME%
) ELSE (
SET TEMP_SOURCE_ROOT=%TEMP_SOURCE_ROOT%\%TEMP_PROJECT_NAME%
)
SET TEMP_PROJECT_NAME=%TEMP_BUILD_TIP1%
)
)
SET MYPATHCOPY=%%~q\
)
IF "%MYPATHCOPY%"=="\" GOTO DONE
GOTO SEARCH
:DONE
ECHO %TEMP_SOURCE_ROOT%
ECHO %TEMP_PROJECT_NAME%
ECHO %TEMP_BUILD_TIP1%
ECHO %TEMP_BUILD_TIP2%
ECHO %TEMP_BUILD_TIP3%
PAUSE


[2011.12.15 補充]
在BAT可以透過IF DEFINED判斷某一個環境變數是否有被定義
IF NOT DEFINED VALUE echo VALUE does not define

參考資料:
How to check if directory exists in %PATH%?
如何檢查是否存在%的目錄路徑%?
如何在batch文件中取得該文件的路徑

2010年4月14日 星期三

Address Bus與Data Bus的觀念

在電腦中,假設要把資料(0xaa)寫到某一個記憶體位址(0xbb),
則把10111011(0xbb)送到位址線(address bus),因為在硬體中,還是有先後順序(由高位元到低位元依序送出),而什麼時候確定所有的資料都送到哩?
分別有一個R/W的訊號線,當W的這一個bit被拉起來的時候,則表示位址線的資料ready了,這個時候就可以由cpu開始讀取了~

當確定要讀取的位址之後,再來就是傳送把資料放到資料線(data bus),運作的情況也是跟把address bus填滿的方式是一樣的!

在硬體中傳送資料的時間是有差異的,但是,對於軟體的眼光中,傳送資料是同一時間的

2010年4月11日 星期日

聰明媽媽 輕鬆煮(白飯)

1. 快快洗
快速沖洗,養分不流失

2. 一比一
食米:水 = 1:1 ~ 1.2倍
水量影響烹煮米飯的軟硬度,請視偏好決定加水量

3. 泡15分
浸泡約15分鐘,讓米粒飽吸水分。

4. 輕輕翻
米飯煮好後,從底部輕輕翻鬆,讓溼氣散發,蒸發多餘水分

5. 燜10分
翻鬆後再燜10-15分鐘,平衡米飯保溼度。

6. 開飯了

我在軍中的奮鬥史-台大電機所之路

我老弟分享的資料~
=====================================================
作者: fallmanalan (秋人) 看板: Militarylife
標題: [哈拉] 我在軍中的奮鬥史-台大電機所之路
時間: Sat Mar 27 23:31:40 2010

我在軍中的奮鬥史-台大電機所之路
03/19,這天早晨,和往常一樣,做例行性的車輛保養,此時,手機鈴響,電話的那一頭傳來,明儒!你上了!台大電機所正取4!真的假的?〈我道〉核對準考證號碼確認無誤後眼淚便不聽使喚的湧出。

我的名字是鍾明儒,大學唸的是土木,大四那一年,毅然決然的轉考電機所,朋友都說我「跨很大」,由於電機類的考科我還是第一次接觸,記得一開始連接地符號都不懂,想當然爾,結果是出師不利,為了不延遲一年,理想的情況是邊當兵邊應考,若能取得入學資格,那退伍後剛好來的及就讀,當然這只是理想,就像高中化學的理想氣體方程式,需要許多前提與外在條件下的苛刻,而且,十個朋友,會有十一人說:這是不可能的!那第十一個就是聽完前面十人否定後信心動搖的自己,此時,回想起某位老師曾經說過:天下沒有做不到的事,只有想不到的事。誰說當兵不能唸書,心中激起了一股推翻這說法的鬥志。

新訓之後的二階段訓是「射擊兵」,頂著科目學習不易以及教官所言,若沒有拿到結業證書很可能被派去擔任較辛苦的「砲手」的壓力下,要找到閒暇時間準備研究所考試,真的是「狹縫中求生存」,為了騰出可用時間,教官上課時專注聽講以求課後能達到快速複習才能有額外時間準備研考,遠離所謂的「時間小偷」,再來,早上比別人早起一~ 二小時,此時,手電筒便是很好的照明工具,我想,古人鑿壁偷光的心情我能體會了,下課十~二十分鐘也是能應用的時間,通車時間(如坐客運、捷運、火車),放假,部隊休息時間,其運用技巧在於完整時間〈大於一小時〉做大事,如章節理論的複習、模擬考試;瑣碎時間〈小於一小時〉做小事,比如拿張空白紙抄上幾個題目或一些概念性的內容隨身攜帶,下課休息時便可拿出來寫,沒辦法書寫時也能深入思考反芻所學,特別注意的是絕對不要熬夜,早上3小時完成一天工作一書提及:清晨時間足以抵過夜晚2~3倍的時間。榜首這樣K書的一書也指出:你以為榜首常常熬夜?錯!榜首從來不熬夜。早晨,腦袋是最清醒的,邏輯思考也最為順暢,熬夜的結果就是造成隔日的學習效果不佳,導致惡性循環,日復一日,所以,若你習慣當夜貓子,請調整你的作息,如此這般,當拿到射擊兵合格證書的同時也完成複習進度的50%了,下部隊後在盡好自己業務本分的前提下依然遵循此法。

有一位銀行的副理曾說過,一位成功的企業家必須要有迅速的果決力與運動員的意志力,不用懷疑,唸書亦是如此,透過體能上的鍛鍊可以增強意志力,國外研究也指出適量的運動可以活化腦內細胞,使頭腦清醒且變的更聰明,因此,除了平日在部隊例行性的體訓,只要是放假我都會保持一天慢跑5000~10000m以及基本重訓的量,這也讓我從新訓開始在連隊上體能一直名列前矛,早上3小時完成一天工作也指出:武術、運動、樂器、語文是培養意志力的良好途徑。榜首這樣K書的也指出:你的運動量跟你的成績大概是一個正比的關係。因此,保持適量的運動均衡的飲食充足的睡眠積極的態度樂觀的心情養成良好的生活習慣,那不論是從軍、準備考試、亦或是出社會、甚至將來創業,必能卓越而非凡。

我不是個聰明的學生,自認天資平庸、資質駑鈍,但曾有一位老師說過:到羅馬有一萬條路,最快那條叫做「方法」,多吸取前人的經驗與知識,不難發現,其實,高手的思維,在大方向上是雷同的,因襲成功者的做法是必要的,當我複習時我採用樹狀統整型複習法,這是一個將複雜資料分類、條理化、結構重組、提高邏輯性、降低重複性、簡化、有助記憶的方法,很多方面,別想大腦優於電腦,對於記憶性的內容,大腦是沒有太多的Memory的,大腦是拿來當成CPU做中央處理器使用,有位企業家就說:out of sight, out of the mind,不在眼前的事物是很容易忘記的,所以他習慣用筆記本做備忘,唸書亦是如此,再來,活用80/20重點分析法則,他的原意是這世上80%的錢都被社會金字塔頂端20%的人賺走,剩下20%的錢才分佈於其餘80%的人,用於讀書上就變成一份考卷〈假設滿分是100 分〉,那80分會從你所學的20%出,剩下20分就是分布於你所學的80%,這在講,只要你抓住那重點的20%,你就能用最少的時間達到最大的效益。更進階的說法即做好時間管理,推薦大家閱讀幾本書:K書高手-出自呂宗昕教授、早上3小時完成一天工作-出自箱田忠昭、榜首這樣K書的。畢竟,大量的閱讀能促使腦力激盪〈by SONY總裁出井伸之〉。

最後,連上士官長說過一句話:感恩源自於感動,在服役的這段期間,我遇到許多貴人,我獲得的比我付出的還要多,何德何能,這份榮譽是屬於大家的,特別感謝在砲校認識幫了我很多忙的吳彬誠、連長、士官長、幫我求了關聖帝君必勝文具的林振宇,以及連隊上弟兄的連署簽名支持,要感謝的人太多了,無法備載,11個月的服役時間很短,生命中的感謝卻沒有期限。

銘記恩師所言:
天才做得到的事,努力就做得到;天才做不到的事,只要努力,還是做得到。
當別人說我不行時,我說我還可以,當我自己說我不行時,那就真的不行了,今天的自己要勝過昨天的自己!

特別感謝電子學的啟蒙老師 劉明彰老師的30堂電子學的精華把繁複的電子學變的輕鬆有趣且學習容易,以及自動控制 詹森老師,讓我一路走來對控制學始終興趣滿滿,附記:今年報考了台大電機所甲組、台大電子所ICS組兩間,台大電機所正取 4,電子所已過一階段,等待面試結果。

附上成績 得分   核算
英文〈A〉70.00 14.00
工數〈C〉55.00 82.50
電子學〈乙〉51.00 51.00
控制〈C〉73.00 109.50
總分257.00 最低錄取222.90

PS. 由於放假的時間很短,需要的話再找時間補上專業科目的準備細節。

2010年4月4日 星期日

清明節記錄

在台南(台灣?!)有一個習俗,當一個家族有生小男孩的時候,必需要連續掃墓三年,告知祖先我們家族又添丁啦~

因為二年多前,三叔公多了一個孫子,因為,今年是第三年到「安南區第一示範公墓」掃墓啦~不過,值得注意的是,當每一次要找我們的墓地時,因為都忘記了,所以,都要找很久~

因此,就在這裡留下一個記錄吧~

我們主要分為三個墓地~

太祖父(爺爺的爺爺,我是玄孫)在17-3巷

曾祖父(爺爺的爸爸,我是曾孫)在10巷

爺爺和伯父合葬在22巷

要去掃墓要記得帶的東西~
除草用具:手套、鐮刀
遮陽用具:帽子、雨傘
拜拜用具:打火機
滅火用具:水桶(通常會有消防隊在墓地提供水和水袋)

2010年3月28日 星期日

偽嘸蝦米的設定

由之前一直到剛剛,在用偽嘸米的時候,在某一些視窗沒有辦法送出字。

剛剛隨便測試的結果,發現,可能是送字的方式有問題。

把它們改成「使用替代方式」就可以解決這一個問題啦~

NotePad++

在寫程式的時候,面對一堆程式碼,這個時候編輯就非常重要啦~
像是vim,Source Insight、PSPad、Notepad++,每一個都有各的優點~
就好像是Windows與Linux各有各的優點~

今天要介紹的就是Notepad++,主要的網站是.:: NOTEPAD++ ::.:

有一個不錯的功能,叫做支援多重視窗同步編輯

蠻不錯的,而且有Portable的軟體,蠻不錯的軟體

參考資料:
好用的Notepad++