2009年12月10日 星期四

Eclipse 在 Ubuntu 9.10 的視窗問題

在Ubuntu 9.10下,想透過ADT外掛來新增AVD,但卻一直沒法把視窗叫出來
後來執行下面的command,就可以解決這個問題
export GDK_NATIVE_WINDOWS=true

但在9.10下開發Android,感覺似乎相當不穩!

2009年11月20日 星期五

Ubuntu 下安裝 sh 檔

1.首先把 .sh 檔拷貝到某目錄下,ex:/usr/local/
2.執行 chmod command
sudo chmod +x *.sh
3.執行 .sh 檔
sudo sh ./*.bin

2009年10月17日 星期六

Build Custom Application With Android Source

如果要把自己寫的 Android 專案 放入 Android Source code 中,與 Source 一起 build 的話
必需先在自己的專案下建立一 Android.mk ,再把整個專案放到 packages/apps/

接下來要加入專案編譯的路徑到 build/target/product/core.mk
打開 core.mk 後,在 PRODUCT_PACKAGES := \ 下面 (fremework-res \ 之後, Bugreport 之前), 加入自已放在 apps/ 下的目錄名稱就可以了!

2009年10月5日 星期一

Build Android-x86 USB Image

1. 首先取得 source 並將它存放在 android-x86 目錄:
$ mkdir android-x86
$ cd android-x86
$ repo init -u git://git.android-x86.org/platform/manifest.git
$ repo sync


2. Build Image
$ make -jX usb_img TARGET_PRODUCT=eeepc
X:CPU 核心數參數,如果是單核,用 1 取代 X,如果是雙核,則用 2,以此類推。
Build 完後,產出會放在 android-x86/out/target/product/eeepc/ 下
建議:如果是重 build 的話,將上次產生出來的 eeepc_usb.img 刪掉

3. 準備一顆隨身碟放 Android Image
$ sudo dd if=out/target/product/eeepc/eeepc_usb.image of=/dev/sdX
/dev/sdX:是USB Device 的名字,如果不知道,可以用 mount 指令來查詢

2009年9月29日 星期二

Ubuntu 下設定 Hinet 連線

DSL 下
新增一筆
在 Username 跟密碼的地方輸入 Hinet 連線的帳號密碼

Wired 下
新增一筆
IPv4 設定標籤下
Method - Manual
Address - 192.168.1.1
Network - 255.255.255.0
Gateway - 0.0.0.0

重灌 XP 後,修復 Ubuntu Grub

1.利用 Ubuntu Live CD,進入 ubuntu
2.打開終端機,切換到權限到 root 使用者
sudo -i
3.進入 grub
grub
4.找到之前 Ubuntu 所在的分割區
> find /boot/grub/stage1
此時,就會顯示出所在的分割區,如:(hd0,6)
5.設定 Ubuntu 所在的路徑
> root (hd0,6)
6.將 grub 灌入 mbr
> setup (hd0)
如果要將 grub 灌在 linux 的分害區下,,就在 hd0 後面再加上分割區的編號就可以了
7.離開 grub
> quit
8.重開機囉~

2009年9月17日 星期四

Layout XML中使用自訂 styleable 的 namespace 定義方式

在 attrs.xml 中宣告了 styleable 的自訂標籤
如:
<resources>
<declare-styleable name="Custom">
<attr name="position">
<enum name="top" value="0" />
<enum name="bottom" value="1" />
</attr>
</declare-styleable>
</resources>

當在 layout 的 xml 要使用到自訂標籤時,namespace 的宣告方式如下:
xmlns:name="http://schemas.android.com/apk/res/packageName
Sample:
<Framelayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<com.test.custom.ui
xmlns:Custom="http://schemas.android.com/apk/res/com.test.custom"
Custom:position="top" />
</Framelayout>

2009年9月2日 星期三

CMD 命令 - Q - Z 字部

RD - 移除 (刪除) 一個目錄
RMDIR [/S] [/Q] [drive:]path
RD [/S] [/Q] [drive:]path

/S 除了目錄本身之外,一併移除指定目錄裡的所有目錄和檔案。
用於移除樹狀目錄結構。

/Q 安靜模式,有 /S 時,刪除目錄樹結構不再要求確認


RECOVER - 從損壞的磁碟中復原可讀取的資訊
RECOVER [磁碟機:][路徑]檔案名稱
在使用 RECOVER 命令以前,
先查閱\ Windows XP 說明內的連線命令參考。


REM - 在批次檔或 CONFIG.SYS 裡加上備註或說明
REM [comment]


REN - 更改檔案名稱
RENAME [drive:][path]filename1 filename2.
REN [drive:][path]filename1 filename2.

請注意您不能為目的檔案指定新的磁碟機或路徑。


RENAME - 更改檔案名稱
RENAME [drive:][path]filename1 filename2.
REN [drive:][path]filename1 filename2.

請注意您不能為目的檔案指定新的磁碟機或路徑。


REPLACE - 取代檔案
REPLACE [drive1:][path1]filename [drive2:][path2] [/A] [/P] [/R] [/W]
REPLACE [drive1:][path1]filename [drive2:][path2] [/P] [/R] [/S] [/W] [/U]

[drive1:][path1]filename 指定來源檔案。
[drive2:][path2] 指定要取代的檔案的
目錄。
/A 將新檔案加到目地目錄。不能和
/S 或 /U 參數同時使用。
/P 當取代檔案或新增來源檔案時顯示確
認的提示。
/R 取代唯讀與未受保護的檔
案。
/S 取代在目的目錄中所有子目錄
的檔案。不能和 /A 參數同時
使用。
/W 在開始前等待您放入磁片。
/U 只取代 (更新) 比來源檔案早
的檔案。不能和 /A 參數同時使用。


RMDIR - 移除 (刪除) 一個目錄
RMDIR [/S] [/Q] [drive:]path
RD [/S] [/Q] [drive:]path

/S 除了目錄本身之外,一併移除指定目錄裡的所有目錄和檔案。
用於移除樹狀目錄結構。

/Q 安靜模式,有 /S 時,刪除目錄樹結構不再要求確認


SET - 顯示、設定或移除 cmd.exe 環境變數
SET [variable=[string]]

variable 指定環境變數名稱。
string 指定設定給變數的一系列字元。

僅鍵入 SET 而不加上任何參數,可以顯示目前的環境變數。

如果您啟用了擴充命令,SET 命令有以下的改變:

如果執行 SET 命令而且只包含變數名稱,沒有等號或數值的話,
命令會顯示出所有字首符合 SET 命令中指定變數名稱的所有變數
值。例如:
SET P

會列出所有以 \'P\' 為開頭的環境變數。

如果在目前的環境中找不到變數名稱,SET 命令會將 ERRORLEVEL
設為 1。

SET 命令不將等號 (=) 視為變數名稱的一部份。

有兩個新參數已經加到 SET 命令中:
SET /A expression
SET /P variable=[promptString]

/A 指定在等號右方的字串是一個要被運算的數字運算式。您可以用運
算式進行簡單的運算,而且支援下列的運算子 (依照運算優先順序由高
到低排列):

() - 組成一群
! ~ - - 一元運算符
* / % - 數字運算元
+ - - 數字運算元
<< >> - 邏輯位移
& - 位元運算 and
^ - 位元運算 exclusive or
| - 位元運算 or
= *= /= %= += -= - 指定
&= ^= |= <<= >>=
, - 運算式分隔字元

如果您使用了任何邏輯或餘數運算子,您必須將運算式兩邊括上引號。
任何在運算式中非數字的字串會被當作環境變數,並且在使用前會先將
這些環境變數轉換為數字。如果您所指定的環境變數名稱尚未在目前環
境中定義,那麼它的值會被設為 0。這可以讓您用環境變數值來做運算
,而不必打入所有的 % 符號來取得它的值。如果 SET /A 是用指令檔
之外的命令列執行,它會顯示運算式最後的數值。指定運算子需要有個
環境變數在等號的左方。0x 字首在數字前方代表十六進位數字、0b 字
首代表二進位數字或 0 字首代表八進位數字,否則數字值都是指十進位
數字。所以 0x12 就和 18、022 等相同。請注意八進位數字可能容易
弄錯: 像 08 和 09 就不是正確的數字,因為 8 和 9 並不是八進位的
正確數字。

/P 參數讓您設定命令列的使用者輸入變數值。在讀取輸入命令列之前,
顯示指定的 promptString。promptString 可以是空白。

環境變數取代功\能已經有下列增強:
%PATH:str1=str2%

會將 PATH 環境變數展開,取代每個發現的 \"str1\" 與 \"str2\"的擴充結果。
\"str2\" 可以是空白字串,這會從擴充輸出中刪除全部 \"str1\"。\"str1\" 可以
用星號開始,這將會從擴充輸出的開頭開始,對應到從所有第一個發現含有
str1 的項目。

您也可以為擴充功\能指定子字串。
%PATH:~10,5%

這將會擴充 PATH 環境變數,然後只使用擴充結果的第 11 個(位移 10)字元
後的 5 個字元如果長度未指定,將會預設為上次使用的變數值。如果數字(位
移或長度)是負數,使用的數字將會是環境變數的長度加上位移或指定長度。
%PATH:~-10%

將抽出 PATH 變數的最後 10 個字元。
%PATH:~0,-2%

將抽出 PATH 變數的最後 2 個字元。

最後,系統加入了延遲環境變數展開的支援。在預設狀態下,命令展開會啟
用這項支援,但是您可以在 CMD.EXE 用 /V 命令列參數來啟用/停用這個功\
能。 請參看 CMD /?

延遲環境變數展開功\能可用來避開展開功\能限制。這項限制是發生在命令列
讀取過程,不是發生在執行過程。下面的範例說明了立即展開變數時會發生
的問題:
set VAR=before
if \"%VAR%\" == \"before\" (
set VAR=after;
if \"%VAR%\" == \"after\" @echo If you see this, it worked
)

這個例子永遠無法顯示 echo 訊息,因為在兩個 IF 敘述中的 %VAR% 會
在第一個 IF 敘述被讀入時便被展開。這是因為它是邏輯上包含了 IF 的內
部,而內部又是一個複合敘述。 所以在複合敘述內的 IF 實際上是用
\"before\" 和 \"after\" 來比較,而這永遠不會為真。同樣的,下面的例子也
不會作用:
set LIST=
for %i in (*) do set LIST=%LIST% %i
echo %LIST%

這個例子中並不會建立目前目錄中所有檔案的清單,相反的只會將 LIST 變
數設為最後一個找到的檔案。同樣地,這是因為 %LIST% 只有在 FOR 敘述
第一次被讀入時才展開,此時 LIST 變數是空的。所以我們實際執行的 FOR
迴圈是:
for %i in (*) do set LIST= %i

這只是重複的將 LIST 設為最後找到的檔案。

延遲環境變數展開讓您可以用一個不同的字元 (驚嘆號) 在執行時展開
環境變數。如果啟用了延遲環境變數展開,上面的例子可以被改寫如下
而正常作用:
set VAR=before
if \"%VAR%\" == \"before\" (
set VAR=after
if \"!VAR!\" == \"after\" @echo If you see this, it worked
)

set LIST=
for %i in (*) do set LIST=!LIST! %i
echo %LIST%

如果您啟用了命令擴充,有幾個動態環境變數會被展開但是不會出現在 SET
所顯示的環境變數列表中。這些變數的值會每次在這些變數被展開時動態地
重新計算如果使用者用這些變數的名稱來定義變數時,則這個新定義會覆蓋\
以下所列的動態變數:

%CD% - 展開為含目前目錄的字串。
%DATE% - 展開為與 DATE 命令格式相同的目前日期字串。
%TIME% - 展開為與 TIME 命令格式相同的目前時間字串。
%RANDOM% - 展開為一個在 0 和 32767 之間的整數亂數值。
%ERRORLEVEL% - 展開為目前的 ERRORLEVEL 值
%CMDEXTVERSION% - 展開為目前的命令處理擴充功\能的版本號碼。
%CMDCMDLINE% - 展開為執行命令處理器前的原始命令列。


SETLOCAL - 開始批次檔中環境變更的本土化工作
在批次檔中屬於中文版環境的開頭已變更。在 SETLOCAL 之後所做的環境變更
已經送出,ENDLOCAL 必須送出,才能還原到上次的設定值。在到達批次指令的
結尾時,批次指令對每個未處理完成的 SETLOCAL 指令都會發出 ENDLOCAL
的執行指令
SETLOCAL

如果您啟用命令擴充,SETLOCAL 的變更如下:

SETLOCAL 批次命令現在可接受一個選項引數,這個引數可為:
ENABLEEXTENSIONS / DISABLEEXTENSIONS
啟用或停用命令處理擴充功\能。
請用 CMD /? 來查看說明。
ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION
啟用或停用延遲環境變數擴充功\能。
請用 SET /? 來查看說明。
這些修正命令作用會持續到對應 ENDLOCAL 命令為止,而不管
它們的設定是否在 SETLOCAL 命令之前。

SETLOCAL 命令將會設定 ERRORLEVEL 的數值,但必須給予一個
引數。兩個有效引數之中如果給了一個,而另一個未給時,它的
數值將變為零。您可以在批次指令檔中使用此命令以決定是否有
可使用的擴充功\能,請使用下列的
語法:
VERIFY OTHER 2>nul
SETLOCAL ENABLEEXTENSIONS
IF ERRORLEVEL 1 回應無法啟用擴充功\能

這在舊版的 CMD.EXE 中可正常運作,因為 SETLOCAL 並不會設定
ERRORLEVEL 值。用了錯誤引數的 VERIFY 命令會將 ERRORLEVEL
值起始為一個非零的值。


SHIFT - 變更批次檔中,可置換參數的位置
SHIFT [/n]

如果您啟用 SHIFT 擴充命令,支援 /n 參數,它告訴 SHIFT 可以從第 n
個引數開始轉移。n 介於 0 和 8 之間。 例如:

SHIFT /2

會將 %3 轉移到 %2,將 %4 轉移到 %3,以此類推。並且不會影響到
%0 及 %1 。


SORT
SORT [/R] [/+n] [/M kilobytes] [/L locale] [/REC recordbytes]

[[drive1:][path1]filename1] [/T [drive2:][path2]]

[/O [drive3:][path3]filename3]

/+n 指定每次開始比較的起始字元

數目 n。 /+3 表示每次比較都從每行的第 3 個字元開始。
少於三個字元的行數會先被核對。

預設情況下會從每行的第一個字元開始比較。
/L[OCALE] locale 用指定數值覆寫系統預設值。
\"\"C\"\" 地區設定會產生最快的核對順序,而且是目前唯一的其他選擇。排序都不會區分英文大小寫。

/M[EMORY] kilobytes 指定排序時主記憶體的使用量記憶體大小,以 KB 為單位。
不可低於160 KB。如果已指定記憶體大小,不論目前可用記憶體有多少,排序時將會使用
您所指定的值。如果您不指定記憶體的話,可以產生最佳效能。
預設狀況下如果符合預設記憶體大小最大值的話,排序會一次執行完成 (沒有暫存檔案),否則排序會分兩次完成(部分排序完成的資料會儲存在暫存檔案中)。
這樣排序和合併所使用的記憶體容量相等。預設最大記憶體大小是90% 的可用主記憶體大小(如果輸入和出都是使用檔案的話),否則只會設定 45% 的可用主記憶體大小。

/REC[ORD_MAXIMUM] 字元指出一個記錄中字元的最大數目 (預設值為 4096,最大值為65535)。

/R[EVERSE] 反轉排序順序; 也就是,排序由 Z 到 A,然後由 9 到 0。

[drive1:][path1]filename1 指定要排序的檔案。如果未指定排序檔案,會將標準輸入排序。指定輸入檔案比將相同的檔案重新導向為標準輸入還要快。

/T[EMPORARY]

[drive2:][path2] 指定要保留排序的工作存放區的目錄路徑,萬一資料不適合放在主要記憶體中的話可以使用。預設值為使用系統暫存目錄。

/O[UTPUT]

[drive3:][path3]filename3 指定排序的輸入要被存放的檔案。如果未指定,資料會被寫入標準輸出中。指定輸出檔案比將標準輸出重新導向到相同的檔案還要快。


START - 啟動獨立視窗來執行指定的程式或命令
START [\"title\"] [/Dpath] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
[/WAIT] [/B] [command/program]
[parameters]

\"title\" 顯示在視窗標題列上的文字
path 起始目錄
B 啟動應用程式但不建立新視窗。含有 ^C 控制碼的應用程式會
被略過,除非應用程式啟用 ^C 程序,否則 ^Break 是唯一可
以中斷應用程式的方法
I 新環境會使用 cmd.exe 的原始環境,而不是目前的環境。
MIN 視窗最小化
MAX 視窗最大化
SEPARATE 用不同的記憶體空間啟動 16 位元視窗程式
SHARED 用共用的記憶體空間啟動 16 位元視窗程式
LOW 在 IDLE 主要類別中啟動應用程式
NORMAL 在 NORMAL 主要類別中啟動應用程式
HIGH 在 HIGH 主要類別中啟動應用程式
REALTIME 在 REALTIME 主要類別中啟動應用程式
ABOVENORMAL 在 ABOVENORMAL 主要類別中啟動應用程式
BELOWNORMAL 在 BELOWNORMAL 主要類別中啟動應用程式
WAIT 啟動應用程式並等待其結束
command/program
如果這是內部 cmd 命令或批次檔的話,命令處理器會用 /K
參數執行 cmd.exe。這表示視窗會保持到命令執行完成。

如果這不是內部 cmd 命令或批次檔的話,它就是一個程式,
它會以視窗程式或主控台 (DOS) 應用程式的執行方式執行。

parameters 這些是傳給 command/program 的參數。


如果您啟用擴充命令,經由命令列或 START 命令的外部命令執行有以下改變:

可以經由打入檔案名稱的命令來利用檔名連結以啟動非執行檔。(例如 WORD.DOC
會執行和 .DOC 副檔名連結的程式)。請參看 ASSOC 及 FTYPE 命令來了解
如何在指令檔案中建立這些檔案連結。

當執行 32 位元的圖形介面應用程式時,CMD.EXE 並不會等應用程式停止才回到
命令提示。但是如果從指令檔中執行時,則不會有這樣的行為。

當執行一個命令列時,其中第一個字串項是字串 \"CMD \" 且沒有副檔名或路徑指
示,則 \"CMD\" 會被 COMSPEC 環境變數的值所取代。這會避免由目前目錄中
選擇 CMD.EXE

當執行一個命令列時,其中第一個字串項不包含副檔名時,則 CMD.EXE 使用
PATHEXT 環境變數的值來決定尋找哪個副檔名及用什麼順序來尋找。PATHEXT
變數的預設值為:
.COM;.EXE;.BAT;.CMD

請注意這個語法和 PATH 變數相同,且用分號來隔開不同的項目。

當尋找執行檔時,若是任何副檔名都不符合,則會試著尋找是否有符合的目錄名稱。
如果有的話,START 命令會在那個路徑執行檔案管理員。若是從命令列執行,這就相
當於執行 CD /D 到那個路徑。


SUBST - 建立路徑與磁碟機代號之間的關連
SUBST [drive1: [drive2:]path]
SUBST drive1: /D

drive1: 指定您要指定路徑的虛擬磁碟機。
[drive2:]path 指定您要指定給虛擬磁碟機的實際磁碟
機與路徑。
/D 刪除取代的 (虛擬的) 磁碟機。

鍵入 SUBST 而不加任何參數會顯示目前所有虛擬磁碟機的清單。


TIME - 顯示或設定系統時間
TIME [/T | time]

僅鍵入 TIME 而不加上參數,可以顯示目前設定的時間,並且提示您輸入新的時
間。按 ENTER 鍵即可保持原來時間。

如果您啟用擴充命令,TIME 命令將會支援/T 參數,這個參數
會讓命令只輸出目前的時間,而不提示您輸入新時間。


TITLE - 設定命令提示字元的視窗標題
TITLE [字串]

字串 指定命令題示字元視窗的標題。


TREE - 以圖形顯示磁碟機或路徑的資料夾架構
TREE [drive:][path] [/F] [/A]

/F 顯示各資料夾中檔案的名稱。
/A 使用 ASCII 取代延伸字元。


TYPE - 顯示文字檔案的內容
TYPE [drive:][path]filename


VER - 顯示 Windows XP 版本
VER


VERIFY - 告訴 cmd.exe 是否要驗證檔案有沒有正確地寫入磁碟中
VERIFY [ON | OFF]

僅鍵入 VERIFY 而不加上參數,可以顯示目前的 VERIFY 設定。


VOL - 顯示磁碟區標籤和序號 (若有的話)
VOL [drive:]


XCOPY - 複製檔案和樹狀目錄
XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]
[/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
[/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z]\\r\\r
[/EXCLUDE:file1[+file2][+file3]...]

source 指定要複製的檔案。
destination 指定位置或者/以及新檔案的名稱。
/A 只複製設定成保存屬性的檔案,不要改變屬性的設定。
/M 只複製設定成保存屬性的檔案,並清除保存屬性。
/D:m-d-y 複製在指定日期當天或之後發生變更的檔案。如果沒有給日期,
只複製那些來源檔案日期比目的檔案日期為新的檔案。
/EXCLUDE:file1[+file2][+file3]...
指定檔案清單字串。每個字串
應該在檔案中的不同行。如果有字串對應到要進行複製的檔案絕
對路徑的任何部分,這個檔案會被排除複製。例如,指定字串
\\obj\\ 或 .obj 的話,會排除所有在 obj 目錄下副檔名是
.obj 的檔案複製。
/P 在建立每個目的檔案時顯示提示。
/S 複製每個目錄及其包含的子目錄,不複製空目錄。
/E 複製每個目錄及其包含的子目錄,也複製空目錄。/S 與 /E
相同,能夠用來修改 /T。
/V 驗證每個新檔案。
/W 在複製之前提示您按鍵繼續。
/C 如果錯誤發生時也繼續複製。
/I 如果目的不存在且複製一個以上的檔案的話,就假設指定的
目的一定是目錄。
/Q 在複製時不要顯示檔名。
/F 在複製時顯示來源及目的檔案的全部檔名。
/L 顯示要複製的檔案。
/G 允許\加密檔案複製到不支援加密的
目的地。
/H 時複製隱藏檔和系統檔。
/R 覆蓋\唯讀檔案。
/T 建立目錄結構,但不複製其中的檔案。不包括空目錄及子目錄。
/T /E 會包括空目錄及子目錄。
/U 只複製已經存在目的位置的檔案。
/K 複製檔案屬性。通常 Xcopy 會重設唯讀的屬性。
/N 用所產生的短檔名來進行複製。
/O 複製檔案所有權及 ACL 資訊。
/X 複製檔案審查設定 (包含 /O)。
/Y 不要提示您確認是否要覆蓋\一個已經存在的檔案。
/-Y 示您確認是否要覆蓋\一個已經存在的檔案。
/Z 在可重新開始的模式中複製網路檔案。

參數 /Y 可以在 COPYCMD 環境變數中預先設定。但可以在命令列中用 /-Y 參數
來覆蓋\原有設定。




轉載自:http://www.csie.ntu.edu.tw/~r91112/myDownload/WEB/CMD.html

2009年8月31日 星期一

Tutorial 04b - Sprite2D

Sprite2D - 一個簡化版的顯示方示,用以取代 3D 顯示物件,可以省去許多額外的計算及資源。此物件在場景中,永遠是面對著 Camera 的。舉例來說,天上的星星、水中的魚、森林裡的樹,都可以利用 Sprite2D 來顯示。

重點API:
sandy.util.LoaderQueue
sandy.core.scenegraph.Sprite2D
sandy.events.QueueEvent

  1. package
  2. {
  3. import flash.display.Bitmap;
  4. import flash.display.Sprite;
  5. import flash.events.Event;
  6. import flash.events.KeyboardEvent;
  7. import flash.events.MouseEvent;
  8. import flash.net.URLRequest;
  9. import sandy.core.Scene3D;
  10. import sandy.core.scenegraph.Camera3D;
  11. import sandy.core.scenegraph.Group;
  12. import sandy.core.scenegraph.Sprite2D;
  13. import sandy.events.QueueEvent;
  14. import sandy.util.LoaderQueue;

  15. public class Example004b extends Sprite
  16. {
  17. private var scene:Scene3D;
  18. private var camera:Camera3D;
  19. // Utility class for 載入外部資源
  20. private var queue:LoaderQueue;
  21. /** numTree 將影響 CPU 的效能 **/
  22. private var numTree:Number = 50;
  23. public function Example004b()
  24. {
  25. // 產生一 LoaderQueue 物件
  26. queue = new LoaderQueue();
  27. // 將欲載入資源之Unique名稱及路徑,加入 queue 中
  28. queue.add("tree", new URLRequest("asset/tree.gif"));
  29. // 為 queue 物件新增監聽事件 - 當資源載入完成時,
  30. // 執行 loadComplete Function
  31. queue.addEventListener(
  32. QueueEvent.QUEUE_COMPLETE,
  33. loadComplete);
  34. // 為 queue 物件新增監聽事件 - 當載入資源發生錯誤時,
  35. // 執行 loadError Function
  36. queue.addEventListener(
  37. QueueEvent.QUEUE_LOADER_ERROR,
  38. loadError);
  39. // 開始載入外部資源
  40. queue.start();
  41. }

  42. public function loadComplete(evt:QueueEvent):void
  43. {
  44. // 產生 Camera3D 物件
  45. camera = new Camera3D(600, 300);
  46. camera.y = 10;
  47. camera.z = -300;

  48. // 產生 Group 物件
  49. var root:Group = createScene();

  50. // 產生 Scene3D 物件,並將 Camera3D 及 Group 加入場景
  51. scene = new Scene3D("scene", this, camera, root);
  52. // 設定當物件超出場景之外時,將不會被畫出
  53. scene.rectClipping = true;

  54. addEventListener(Event.ENTER_FRAME,
  55. enterFrameHandler);
  56. stage.addEventListener(KeyboardEvent.KEY_DOWN,
  57. keyPressHandler);
  58. stage.addEventListener(MouseEvent.MOUSE_MOVE,
  59. mouseMoveHandler);
  60. }

  61. public function loadError(evt:QueueEvent):void
  62. {
  63. trace("load resource error");
  64. }

  65. private function createScene():Group
  66. {
  67. // 產生根 Group 物件
  68. var g:Group = new Group();

  69. // 產生 Sprite2D 物件
  70. for (var i:Number = 0; i <>
  71. {
  72. // 將載入 queue 物件中的資源取出
  73. var bit:Bitmap =
  74. new Bitmap(queue.data["tree"].bitmapData);
  75. // 產生 Sprite2D 物件,並設置其參數,分別為
  76. // Unique名稱,顯示物件 (DisplayObject) 及 縮放比率
  77. var s:Sprite2D = new Sprite2D("tree" + i, bit, 1);
  78. // 隨機設定 Sprite2D 的 x, y, z 座標位置
  79. s.x = Math.random() * 600 - 300;
  80. s.y = 0;
  81. s.z = Math.random() * 600;

  82. g.addChild(s);
  83. }

  84. return g;
  85. }
  86. private function enterFrameHandler(evt:Event):void
  87. {
  88. scene.render();
  89. }
  90. private function keyPressHandler(evt:KeyboardEvent):void
  91. {
  92. // 調整 camera 鏡頭之遠近
  93. switch(evt.keyCode)
  94. {
  95. case KeyboardEvent.KEY_UP:
  96. camera.moveForward(5);
  97. break;
  98. case KeyboardEvent.KEY_DOWN:
  99. camera.moveForward( -5);
  100. break;
  101. }
  102. }
  103. private function mouseMoveHandler(evt:MouseEvent):void
  104. {
  105. // 隨滑鼠移動設置 camera 之方向
  106. camera.pan = (evt.stageX - 300 / 2) / 10;
  107. camera.tilt = (evt.stageY - 300 / 2) / 20;
  108. }
  109. }
  110. }




程式碼出處:http://www.flashsandy.org/tutorials/3.0/sandy_cs3_tut042

2009年8月25日 星期二

Flash Player Linux 64bit

目前似乎沒有release正式版
所以還是使用試用版
載點:http://labs.adobe.com/technologies/flashplayer10/

首先將.so檔 複製到 mozilla 的 plugins底下
sudo cp libflashplayer.so /usr/lib/mozilla/plugins/


接著與瀏覽器做連結
‧Firefox
sudo ln -sf /usr/lib/mozilla/plugins/libflashplayer.so /usr/lib/firefox-addons/plugins/
‧XULRunner
sudo ln -sf /usr/lib/mozilla/plugins/libflashplayer.so /usr/lib/xulrunner-addons/plugins

2009年8月24日 星期一

cda轉MP3 - Windows Media Player

將.cda 檔轉成 .mp3檔
1.開啟Windows Media Player
2.至 “擷取” 頁面
3.自由勾選欲轉換之曲目
4.自由編輯專輯名稱、作者等
5.按下右下方的 “開始擷取” 鈕,即可
擷取出來檔案,預設放在 「我的文件/我的音樂」 下

CMD 命令 - I - P 字部

IF - 在批次檔中執行條件處理
IF [NOT] ERRORLEVEL number command
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command


NOT 表示 Windows XP 應該只有在條件為偽時
才執行命令。

ERRORLEVEL number 當上一個執行的程式傳回的結束碼大於或
等於指定數字時,則條件為真。

string1==string2 當指定的文字字串相符合時,則條件
為真。

EXIST filename 如果指定的檔名存在時,則條件
為真。

command 指定當條件為真時所要執行的命令。
命令之後可以接著 ELSE 命令。當指定條件為
偽時,緊接在 ELSE 命令之後的命令
將會被執行。

ELSE 子句必須出現在 IF 之後的同一行。
例如:

IF EXIST filename. (
del filename.
) ELSE (
echo filename. missing.
)

以下命令無法作用,因為 del 命令必須以換行字元來
結尾:

IF EXIST filename. del filename. ELSE echo filename. missing

下面命令也無法作用,因為 ELSE 命令必須在與 IF 命令同一行
的結尾:

IF EXIST filename. del filename.
ELSE echo filename. missing

下面命令只有在寫成一行時才能作用:

IF EXIST filename. (del filename.) ELSE echo filename. missing

如果您啟用擴充命令,IF 的變更如下:

IF [/I] string1 compare-op string2 命令
IF CMDEXTVERSION 數字命令
IF DEFINED 變數命令

compare-op 可以是:

EQU - 等於
NEQ - 不等於
LSS - 小於
LEQ - 小於或等於
GTR - 大於
GEQ - 大於或等於

而如果指定 /I 參數,則執行區分大小寫的字串比對。此 /I 參數也可使用
string1==string2 格式於 IF 命令。這些比對是通用的,因為在比對中,如
果 string1 及 string2 兩者皆由十進位數字所構成,則字串將會轉換為數
字,並執行數字的比對。

CMDEXTVERSION 條件式的運作和 ERRORLEVEL 一樣,除非它和與擴充命令相
關的內部版本編號作比對。第一個版本為 1。若擴充命令大幅度地增強時就
再加 1。當擴充命令停用時,CMDEXTVERSION 條件式永遠不為真。

DEFINED 條件式的運作和 EXISTS 一樣,除非它帶有環境變數名稱,如果環
境變數已定義則傳回 true 值。

%ERRORLEVEL% 將擴充到代表目前 ERRORLEVEL 變數的一個字串,前提是已
經沒有名為 ERRORLEVEL 的環境變數,在這個情況下,您會得到它的值。使
用此值和上面的數字比對運算元,您可以作下列的選擇:

goto answer %ERRORLEVEL%
:answer0
提示您鍵入 Y 加以確定
:answer1
提示您鍵入N 加以否定

您也可使用上面的數字比對:

IF %ERRORLEVEL% LEQ 1 goto okay

%CMDCMDLINE% 將擴充到比 CMD.EXE 的任何處理程序更早傳給 CMD.EXE 的
原始命令列,前提是已經沒有名為 CMDCMDLINE 的環境變數,在這個情形下,
您會得到它的值。

%CMDEXTVERSION% 將擴充成一個表示目前 CMDEXTVERSION 值的字串,
表示沒有名為 CMDEXTVERSION 的環境變數。這種情況下您將會得到它的值。


LABEL - 建立、變更或刪除磁碟的磁碟區標籤
LABEL [drive:][label]
LABEL [/MP] [volume] [label]


drive: 指定磁碟機代號。
label 指定磁碟區標籤。
/MP 指定磁碟區應被視為掛接點
或磁碟區名稱。
volume 指定磁碟機代號 (後接冒號),
掛接點或磁碟區名稱。如果磁碟區名稱已經指定了,
/MP 旗幟就沒有必要了。


MD - 建立目錄
MKDIR [drive:]path
MD [drive:]path


如果您啟用擴充命令,MKDIR 的變更如下:

必要時,MKDIR 會在目錄中建立一個中間目錄。
例如,假設 \\a 不存在,則:

mkdir \\a\\b\\c\\d

相同於:

mkdir \\a
chdir \\a
mkdir b
chdir b
mkdir c
chdir c
mkdir d

如果擴充功\能停用的話,您必須鍵入前一種命令類型。


MKDIR - 建立目錄
MKDIR [drive:]path
MD [drive:]path


如果您啟用擴充命令,MKDIR 的變更如下:

必要時,MKDIR 會在目錄中建立一個中間目錄。
例如,假設 \\a 不存在,則:

mkdir \\a\\b\\c\\d

相同於:

mkdir \\a
chdir \\a
mkdir b
chdir b
mkdir c
chdir c
mkdir d

如果擴充功\能停用的話,您必須鍵入前一種命令類型。


MODE - 設定系統裝置組態
序列連接埠: MODE COMm[:] [BAUD=b] [PARITY=p] [DATA=d] [STOP=s]
[to=on|off] [xon=on|off] [odsr=on|off]
[octs=on|off] [dtr=on|off|hs]
[rts=on|off|hs|tg] [idsr=on|off]

裝置狀態: MODE [device] [/STATUS]

重新導向的列印: MODE LPTn[:]=COMm[:]

選擇字碼頁: MODE CON[:] CP SELECT=yyy

字碼頁狀態: MODE CON[:] CP [/STATUS]

顯示模式: MODE CON[:] [COLS=c] [LINES=n]

鍵盤速度: MODE CON[:] [RATE=r DELAY=d]


MORE - 以一次一頁螢幕的方式來顯示輸出
MORE [/E [/C] [/P] [/S] [/Tn] [+n]] < [drive:][path]filename command-name | MORE [/E [/C] [/P] [/S] [/Tn] [+n]] MORE /E [/C] [/P] [/S] [/Tn] [+n] [files]

[drive:][path]filename 指定要顯示的檔案。檔案會以一次
一頁螢幕的方式顯示。

command-name 指定一個命令,而它的輸出將會以
一次一頁螢幕的方式顯示。

/E 啟用擴充功\能。
/C 在顯示一頁之前先清除螢幕。
/P 展開 FormFeed 字元。
/S 將數個空白行顯示為一行。
/Tn 將定位字元展開為 n 個空白 (預設值為 8)

MORE 環境變數中可以有命令
選項

+n 在第 n 行開始顯示第一個檔案。

files 要顯示的檔案清單。在清單中的檔案
用空格分開。

如果您使用了擴充功\能,您可以在 -- 其他 --
提示出現時,使用下列命令:

P n 顯示下面 n 行
S n 跳過下面 n 行
F 顯示下一個檔案
Q 結束
= 顯示行號
? 顯示輔助說明行
顯示下一頁
顯示下一行


MOVE - 移動或更改檔案及目錄的名稱
移動一個或一個以上的檔案:
MOVE [/Y | /-Y] [drive:][path]filename1[,...] destination

更改目錄名稱:
MOVE [/Y | /-Y] [drive:][path]dirname1 dirname2

[drive:][path]filename1 指定您要移動的檔案的位置與名稱。
destination 指定檔案的新位置。目的位置可以包
含磁碟機代號和冒號、目錄名稱、或
是這些的組合。如果您只移動一個檔
案,您也可以包含檔名。這樣做會在
移動的同時更改檔名。
[drive:][path]dirname1 指定您要更改名稱的目錄。
dirname2 指定目錄的新名稱。

/Y 不要提示您是否要覆蓋\一個現存的
目的檔案。
/-Y 提示您是否要覆蓋\一個現存的目的
檔案。

參數 /Y 可能會在 COPYCMD 環境變數中預先設定。您可以在命令列中
使用 /-Y 來覆蓋\預設值。預設值是除非 MOVE 命令是在批次檔中執行,
否則系統會提示您是否要覆寫現有檔案。


PATH - 顯示或設定搜尋執行檔的路徑
PATH [[drive:]path[;...][;%PATH%]
PATH ;

鍵入 PATH ; 即可清除所有搜尋路徑的設定,並將 cmd.exe 重導為只搜尋
目前的目錄。鍵入 PATH 且不指定任何參數,可顯示目前的搜尋路徑。
在設定的新路徑中加上 %PATH%,可以將舊路徑附加到新的設定。


PAUSE - 暫停執行批次程式,並且顯示以下訊息:
請按任意鍵繼續 . . .


POPD - 變更到用 PUSHD 命令儲存的目錄
POPD

如果您啟用擴充命令,當您使用 POPD 命令將磁碟機從擴充的目錄堆疊
刪除時,POPD 命令會刪除由 PUSHD 所建立的暫時性磁碟機代號。


PRINT - 列印文字檔
PRINT [/D:device] [[drive:][path]filename[...]]

/D:device 指定印表機週邊設備。


PROMPT - 變更 cmd.exe 命令提示字元
PROMPT [text]

text 指定新的命令提示字元。

提示字元可以由一般字元及下列特定代碼組成:

$A & (Ampersand)
$B | (直線)
$C ( (左括弧)
$D 目前的日期
$E 跳出代碼 (ASCII 碼 27)
$F ) (右括弧)
$G > (大於符號)
$H 後退 (清除前一個字元)
$L < (小於符號)
$N 目前的磁碟機
$P 目前的磁碟機及路徑
$Q = (等號)
$S (空格)
$T 目前的時間
$V Windows XP 版本編號
$_ 換行
$$ $ (貨幣符號)

如果您啟用擴充命令,PROMPT 命令會支援下列其他的格式字元:

$+ 零或多個加號 (+) 字元,視 PUSHD 目錄堆疊的深度
而定,每推入一層就多一個字元。

$M 顯示與目前的磁碟機代號或空字串相關聯的遠端名稱
(如果目前的磁碟機不是網路磁碟機的話)。


PUSHD - 儲存目前目錄以供 POPD 命令使用,然後切換到指定的目錄
PUSHD [path | ..]

path 指定要切換到的目錄。

如果您啟用擴充命令,PUSHD 命令會接受正常的磁碟機代號和路徑之外的網
路路徑。如果您指定了一個網路路徑,PUSHD 會建立一個代表該特定的網路
資源的暫時性磁碟機代號,然後以剛定義的磁碟機代號,變更目前的磁碟機
和目錄。暫時性磁碟機代號的配置是由 Z: 往下開始定義,方法是使用第一
個發現到未曾使用過的磁碟機代號。




轉載自:http://www.csie.ntu.edu.tw/~r91112/myDownload/WEB/CMD.html

2009年8月4日 星期二

CMD 命令 - E - H 字部

ECHO - 顯示訊息,或切換命令回應的開啟狀態

ECHO [ON | OFF]
ECHO [message]


僅鍵入 ECHO 而不加上參數,可以顯示目前的 ECHO 設定。


ENDLOCAL - 中止在批次檔案中的環境變更

在 ENDLOCAL 之後所做的環境變更已經送出,
對批次檔來說它不在本機上。批次檔終止時,並未還原到上一個設定值。

ENDLOCAL

如果您啟用擴充功\能,ENDLOCAL 命令的變更如下:

如果對應的 SETLOCAL 藉由 ENABLEEXTENSIONS 或
DISABLEEXTENSIONS 選項啟用或停用擴充命令,則在
ENDLOCAL 執行後,擴充命令的已啟用/已停用狀態
將會還原到符合 SETLOCAL
命令執行前的狀態。


ERASE - 刪除一個或更多檔案

DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names


names 指定一個或更多檔案或目錄清單。
可以使用萬用字元來刪除多個檔案。 如果
指定目錄,這個目錄內的所有檔案
將被刪除。

/P 刪除每個檔案前,先提示確認。
/F 強制刪除唯讀檔案。
/S 由所有子目錄刪除指定的檔案。
/Q 安靜模式,不要問是否確定刪除全域萬用字元
/A 根據屬性選取要刪除的檔案
attributes R 唯讀檔案 S 系統檔案
H 隱藏檔案 A 準備保存的檔案
- 首碼表示不是

如果您啟用擴充命令,DEL 和 ERASE 命令的變更如下:

/S 參數的顯示方式完全相反,它只會顯示已刪除的檔案,不會顯示它找不到的
檔案。


EXIT - 結束 CMD.EXE 程式 (命令直譯器) 或目前的批次檔

EXIT [/B] [exitCode]

/B 指定這個參數來結束目前批次檔而不是 CMD.EXE。
如果是由批次檔之外執行,CMD.EXE將會結束。

exitCode 指定一個數字。如果指定 /B,則設定 ERRORLEVEL
為這個數字。如果結束 CMD.EXE,設定程序結束碼
為這個數字。


FC - 比較兩個檔案或兩組檔案並且顯示其中的不同之處

FC [/A] [/C] [/L] [/LBn] [/N] [/T] [/U] [/W] [/nnnn] [drive1:][path1]filename1
[drive2:][path2]filename2
FC /B [drive1:][path1]filename1 [drive2:][path2]filename2


/A 針對每組不同之處只要顯示其中的第一行和最後一行。
/B 使用二進位的內容比較。
/C 忽略字母的大小寫。
/L 以 ASCII 文字檔案方式來比較檔案。
/LBn 在指定的行數中設定容許\的最多連續的檔案
不相符。
/N 在 ASCII 方式的比較中顯示行數。
/T 不要將定位字元展開為空格。
/U 以 UNICODE 文字檔案方式來比較檔案。
/W 將空白字元 (定位字元和空格) 壓縮後再進行比較。
/nnnn 指定在一處不相同之後必須相同的連
續行數。
[drive1:][path1]filename1
指定要比較的第一個檔案或第一組檔案。
[drive2:][path2]filename2
指定要比較的第二個檔案或第二組檔案。


FIND - 搜尋檔案中的文字字串

FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] \"string\" [[drive:][path]filename[ ...]]

/V 顯示所有不包含指定字串的行。
/C 只顯示包含字串的行數。
/N 顯示每一行及它的行號。
/I 當搜尋字串時,忽略字元的大小寫。
/OFF[LINE] 不要略過有離線屬性設定的檔案。
\"string\" 指定要尋找的文字字串。
[drive:][path]filename
指定要尋找的檔案。

如果沒有指定路徑,FIND 會搜尋在提示字元中所輸入的文字
或者在其他的命令中搜尋。


FINDSTR - 在檔案中搜尋字串

FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file]
[/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]
字串 [[drive:][path]filename[ ...]]


/B 如果是在行的開端,則符合類型。
/E 如果是在行的尾端,則符合類型。
/L 逐字使用搜尋字串。
/R 使用搜尋字串為一般表示式。
/S 在現存目錄及所有的子目錄中
搜尋符合的檔案。
/I 指定搜尋不區分大小寫。
/X 列印完全符合的行數。
/V 只列印不含相符字串的行數。
/N 列印每一行符合的行數前的行編號。
/M 只列印包含相符字串的檔案的檔案名稱。
/O 列印每一個相符行之前的字元位移。
/P 略過沒有可列印字元的檔案
/OFF[LINE] 不要略過有離線屬性組的檔案。
/A:attr 指定有兩個十六進位數字的色彩屬性。請參考 \"color /?\"
/F:file 從指定的檔案 (/ 代表主控台) 讀取檔案清單。
/C:string 使用特定的字串作為逐字搜尋的字串。
/G:file 從指定的檔案取得搜尋字串(/ 代表主控台)。
strings 要搜尋的文字。
[drive:][path]filename
指定要搜尋的一個或多個檔案。

除非引數的字首有 /C ,否則請以空格將多重搜尋
字串分開。例如,\'FINDSTR \"hello there\" x.y\' 將會在檔案 x.y 中搜尋 \"hello\",或
\"there\"。\'FINDSTR /C:\"hello there\" x.y\' 將會在檔案 x.y 中搜尋
\"hello there\"。

有關 FINDSTR 一般表示式的資訊,請參閱\連線
命令參照。


FOR - 對一組檔案中的每個檔案執行指定的命令

FOR %variable IN (set) DO 命令 [command-parameters]

%variable 指定一個可以取代的參數。
(set) 指定由一或多個檔案組成的檔案組。您可使用通配字元。
command 指定命令來執行每一個檔案。
command-parameters
為所指定的命令指定變數或參數。

如果要在批次程式中使用 FOR 命令,請指定 %%variable,而不要指定
%variable。 變數名稱有大小寫的區分,所以 %i 不同於 %I。

如果您啟用擴充命令,則額外支援下列的 FOR 命令
格式:

FOR /D %variable IN (set) DO command [command-parameters]

如果 set 中包含萬用字元,則指定與目錄
名稱相符,而不是與檔案名稱相符。

FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]

在樹狀目錄中切換 [drive:]路徑,並於樹狀目錄的每一個目錄下執行
FOR 陳述式。如果未在 /R 之後指定目錄規格,則採用目前的目錄。
如果 set 只是單一句點 (.) 字元,則它只會列舉樹狀目錄結構。

FOR /L %variable IN (start,step,end) DO command [command-parameters]

set 是從開頭到結尾一次跳一步的連續數字。所以 (1,1,5) 會產生
連續值 (1 2 3 4 5) 而 (5,-1,1) 會產生連續值 (5 4 3 2 1)

FOR /F [\"options\"] %variable IN (file-set) DO command [command-parameters]
FOR /F [\"options\"] %variable IN (\"string\") DO command [command-parameters]
FOR /F [\"options\"] %variable IN (\'command\') DO command [command-parameters]

或,如果使用 usebackq 選項:

FOR /F [\"options\"] %variable IN (file-set) DO command [command-parameters]
FOR /F [\"options\"] %variable IN (\'string\') DO command [command-parameters]
FOR /F [\"options\"] %variable IN (`command`) DO command [command-parameters]

filenameset 可以是一個以上的檔案名稱。每個檔案都已開啟,
讀取及處理過,才繼續進行下個檔案名稱組。處理檔案讀取的一致
性,將它分成獨立的文字行,然後將每一行分析成零或更多的字串。
用已找到的字串值為變數值,來呼叫 For 迴圈的內容。預設狀態,
/F 傳出每個檔案的每一行中,以空格分隔的第一個字串。空白行
會被略過。您可以指定 \"options\" 參數來覆寫預設的分析行為。
這是有引號的字串,包含一個以上的關鍵字,來指定不同的分析
選項。關鍵字是:

eol=c - 指定一個行尾註解字元
(只有一個)
skip=n - 指定在檔案開頭要掠過的
行數。
delims=xxx - 指定分隔符號的集合。 這會取代
預設的空白與定位字元的分隔符號集合。
tokens=x,y,m-n - 指定每一行的哪些文字串應該被
傳到 for 的內部以用來進行每一個重複操作。
這會導致額外的變數名稱被配置。
m-n 格式代表一個範圍,
指定了第 m 個到第 n 個字串項。
如果在 tokens= 字串的最後一個字元是
星號,則會配置一個額外的變數
來接收最後一個字串項被分析後
的其他文字。
usebackq - 指定新語義開始作用。
其中反括號的字串會被當作命令來執行,
而單引號字串是純文字字串。
此外還允許\使用雙引號來
引用在 filenameset 內
的檔名。

以下是一個範例:

FOR /F \"eol=; tokens=2,3* delims=, \" %i in (myfile.txt) do @echo %i %j %k

這會分析 myfile.txt 檔案中的每一行,它不會去管以分號開頭的行數
,直接將第 2 個及第 3 個語法從每一行傳到 for 主體,而其語法是
用逗號和/或空格分開的。請注意,for 主體陳述式參照 %i 以取得第
二個語法,參照 %j 以取得第三個語法,使用 %k 取得第三個語法之
後的剩餘字串。因為檔案名稱含有空格,您必須用雙引號來括住檔案名
稱。要這樣使用雙引號,您必須使用 usebackq 參數。否則雙引號會被
解譯成用來定義一般文字。

使用 %i 明白地在 for 陳述式中宣告,並透過 tokens= option 使用
%j 作暗式性的宣告。您可以藉由 tokens= line 來指定最多 26 個語
法,前提是它宣告的變數不能高於字母 \'z\' 或 \'Z\'。請記住,FOR 變
數是單一字元的,同時在任一時間內,您不能同時使用超過 52 個 FOR
變數。

您也可以使用 FOR /F 命令在立即字串中分析邏輯,方法是將括弧之間的
filenameset 變成一個引號字串。它會被視為從檔案輸入的單行,並加
以分析。

最後,您可以使用 FOR /F 命令來分析一個命令的輸出。方法是將括弧
內的 filenameset 變成單引號字串。它將被視為一個命令列,這個命令
行將會傳到子 CMD.EXE,而輸出將會被擷取到記憶體中,當成檔案來分
析。所以下列的範例:

FOR /F \"delims==\" %i IN (\'set\') DO @echo %i

將列舉目前環境中的環境變數名稱。

此外,已經加強了 FOR 變數參考的取代功\能。
您現在可以選用下列的語法:

%~I - 展開 %I 且移除包圍的引號 (\")
%~fI - 展開 %I 為一個完全符合的路徑名稱
%~dI - 只展開 %I 為磁碟機代號
%~pI - 只展開 %I 為路徑
%~nI - 只展開 %I 為檔名
%~xI - 只展開 %I 為副檔名
%~sI - 展開的路徑只包含短檔名
%~aI - 展開 %I 為檔案的檔案屬性
%~tI - 展開 %I 為檔案的日期/時間
%~zI - 展開 %I 檔案的長度
%~$PATH:I - 搜尋所有列在 PATH 環境變數內的目錄
且展開 %I 為
第一個找到的完全符合檔名。
如果沒有定義環境變數名稱
或是搜尋找不到檔案,
則這個修飾元會展開為
空字串。

修飾元可以合併使用以獲得綜合的結果:

%~dpI - 只展開 %I 為磁碟機代號與路徑
%~nxI - 只展開 %I 為檔名與副檔名
%~fsI - 只展開 %I 為含短檔名的完全路徑
%~dp$PATH:i - 為 %I 搜尋所有列在 PATH 環境變數內的目錄
且展開第一個找到的項目為磁碟機代號及
路徑。
%~ftzaI - 展開 %I 為像 DIR 一樣的輸出行

在上面的範例中 %I 和 PATH 能用其他的合法值取代。%~ 語法是由合法的
FOR 變數名稱來終止。如果選用像 %I 的大寫名稱可以增加可讀性而且避免
和修飾元的混淆,因為這些並不區分大小寫。


FORMAT - 格式化磁片以供 Windows XP 使用

FORMAT volume [/FS:file-system] [/V:label] [/Q] [/A:size] [/C] [/X]
FORMAT volume [/V:label] [/Q] [/F:size]
FORMAT volume [/V:label] [/Q] [/T:tracks /N:sectors]
FORMAT volume [/V:label] [/Q]
FORMAT volume [/Q]


volume 指定磁碟機代號 (後接冒號),
掛接點或磁碟區名稱。
/FS:filesystem 指定檔案系統的類型
(FAT、FAT32、或 NTFS)。
/V:label 指定磁碟區標籤。
/Q 執行快速格式化。
/C 只限 NTFS: 根據預設值,建立在新磁碟區上的檔案
會被壓縮。
/X 視需要先將磁碟區解下。
所有在磁碟區上開啟的控制碼都不再是正確的。
/A:size 覆寫預設的配置單位大小。建議在一般使用時,最
好使用預設值。
NTFS 支援 512、1024、2048、4096、8192、16K、32K 和 64K。
FAT 支援 512、1024、2048、4096、8192、16K、32K、64K、
(128K、256K 供磁區容量 > 512 位元組使用)。
FAT32 支援 512、1024、2048、4096、8192、16K、32K、64K,
(128K、256K 供磁區容量 > 512 位元組使用)。

請注意 FAT 及 FAT32 檔案系統強制限制
在磁碟區的叢集數目:

FAT: 叢集數目 <= 65526 FAT32: 65526 < 叢集數目 <>

FTYPE - 顯示或修改用在副檔名關聯的檔案型態

FTYPE [fileType[=[openCommandString]]]

fileType 指定要顯示或修改的檔案型態
openCommandString 指定這個型態的檔案應該用來啟動檔案
的開啟命令。

鍵入 FTYPE 而沒有參數時會顯示目前有定義開啟命令字串的檔案型態。
如果指定了一個檔案型態來執行 FTYPE,它會顯示那個檔案型態目前的開
啟命令字串。如果設定開啟命令字串為空字串,則 FTYPE 命令將會刪除
那個檔案型態的開啟命令字串。在開啟命令字串中,%0 或 %1 會被取代
為經由檔案關聯所啟動的檔案名稱。%* 代表所有參數而 %2 代表第一
個參數、%3 代表第二個,以此類推。%~n 代表在含第 n 個後的其餘所
有參數,其中 n 可以從 2 到 9。例如:

ASSOC .pl=PerlScript
FTYPE PerlScript=perl.exe %1 %*

可以讓您鍵入下列命令來執行 Perl 指令檔:

script.pl 1 2 3

如果您不想鍵入副檔名,您可以做下列的指定:

set PATHEXT=.pl;%PATHEXT%

而上面的指令檔可以這樣來執行:

script 1 2 3


GOTO - 將 cmd.exe 導向到批次程式裡標籤指定的位置

GOTO label

label 指定批次程式裡做為標籤名稱的文字字串。

標籤名稱必須單獨一行,並且以冒號開頭。

如果您啟用擴充命令,GOTO 命令的變更如下:

GOTO 命令接收到一個目標標籤: EOF,而此標籤會將控制
傳輸到目前批次指令檔的尾端。利用此簡單的方式,可不
必定義標籤便即離開批次指令檔。鍵入 CALL /? 以查看有關
CALL 擴充命令發揮此特性的描述。


GRAFTABL - 在圖形模式中啟用 Windows 來顯示擴充字集

GRAFTABL [xxx]
GRAFTABL /STATUS


xxx 指定一個字碼頁編號。
/STATUS 顯示目前選取的字碼頁給 GRAFTABL 使用。


HELP - 提供 Windows XP 命令的說明資訊

HELP [command]

command - 顯示該命令的說明資訊。




轉載自:http://www.csie.ntu.edu.tw/~r91112/myDownload/WEB/CMD.html

Android Log Debug

在 Android 系統上使用 logcat 來 debug:
1. Alt + F1 切換到 command mode (切回 Alt + F7)
2. 切換到 data (better)
cd /data
3. 將操作後動作所產生的 log info 寫入檔案中
logcat -d -f fileName.log
4. sync
sync
接下來就可以使用其他的OS來讀取所產生的 Log 檔

2009年7月30日 星期四

CMD 命令 - A - D 字部

ASSOC - 顯示或修改副檔名的關聯

ASSOC [.ext[=[fileType]]]

.ext 指定副檔名,使檔案類型與
fileType 產生關聯 指定檔案類型,以便和副檔名產生關聯。

鍵入 ASSOC 並且不加任何的參數,以顯示目前的檔案關聯性。如果
ASSOC 只呼叫一個副檔名,它將會顯示該副檔名目前的檔案關聯性。
如果不指定檔案類型,命令便會將副檔名的關聯性刪除。


AT - 排定電腦上要執行的命令和程式

AT 命令排定某些命令或程式在某個特定的日期和時間,在電腦上執行。
執行 AT 命令之前必須先啟動 Schedule 服務。

AT [\\\\computername] [ [id] [/DELETE] | /DELETE [/YES]]
AT [\\\\computername] time [/INTERACTIVE]
[ /EVERY:date[,...] | /NEXT:date[,...]] \"command\"

\\\\computername 指定遠端電腦。
如果省略這個參數,命令會被排定在本機上執行。
id 指定給排定時程命令的識別碼。
/delete 刪除某個已排程的命令。如果省略 id,所有電腦上已排程的
命令都會被刪除。
/yes 用於刪除所有已排程的工作,且不想在執行刪除時顯示確認訊息
使用。
time 指定命令執行的時間。
/interactive 允許\工作在執行時,與當時登入的用戶互動。
/every:date[,...] 指定在每週或每月的某日 (或某幾日) 執行命令。
如果省略日期,則預設為在每月的本日執行。
/next:date[,...] 指定在下一次的指定日期 (如,下週三) 時,執行命令。
如果省略日期,則預設為在每月的本日執行。
\"command\" 準備執行的 Windows NT 命令或批次檔。


ATTRIB - 顯示或變更檔案屬性

ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [[drive:][path][filename]
[/S [/D]]

+ 設定屬性。
- 清除屬性。
R 唯讀檔案屬性。
A 保存檔案屬性。
S 系統檔案屬性。
H 隱藏檔案屬性。[drive:][path][filename]
指定一個或一個以上的檔案給 attrib 處理。
/S 處理目前的資料夾及所有子資料夾中相
符的檔案。
/D 一併處理資料夾。


BREAK - 設定或清除 DOS 系統的延伸 CTRL+C 檢查

這是為了與 DOS 系統的相容性而保留,在 Windows XP 裡沒有作用。

如果您啟用擴充命令,並在 Windows XP
平台執行時,那麼 BREAK 命令會在以偵錯程式偵錯時
輸入一個硬式編碼中斷點。

CACLS - 顯示或修改檔案的存取控制清單 (ACLs)

CACLS filename [/T] [/E] [/C] [/G user:perm] [/R user [...]]

[/P user:perm [...]] [/D user [...]]

filename 顯示 ACL。

/T 變更指定檔案的 ACL 於

現有的目錄或所有子目錄中。

/E 編輯 ACL 而非將它取代。

/C 拒絕存取的錯誤繼續發生。

/G user:perm 授與指定的使用者存取權限。

Perm 的值可以是: R 讀取

C 變更 (寫入)

F 完全控制

/R user 撤銷已指定的使用者存取權限 (只有當 /E 存在時才有效)。

/P user:perm 取代已指定的使用者存取權限。

Perm 的值可以是: N 沒有權限

R 讀取

C 變更 (寫入)

F 完全控制

/D user 拒絕已指定的使用者存取。

您可以在命令中使用萬用字元一次指定數個檔案。

您可以在命令中指定數個使用者。

縮寫:

CI - 容器繼承。

ACE 將被目錄繼承。

OI - 物件繼承。

ACE 將被檔案繼承。

IO - 僅供繼承。

ACE 不可套用到目前的檔案/目錄。

CALL - 從批次程式中呼叫另一程式

CALL [drive:][path]filename [batch-parameters]

batch-parameters 指定批次程式所需要的命令列資訊。

如果您啟用擴充命令,CALL 命令的變更如下:

CALL 命令現在可以用標籤來當作 CALL 命令的目標。語法為:

CALL :label arguments

這會用指定的 arguments 來建立一個新的批次檔檔案內容,而且控制權
會被傳到指定的 label 後的敘述。您必須 \"exit\" 兩次,因為批次檔
的結尾會被執行兩次。第一次您讀入批次檔結尾時,控制權會回到 CALL
描述的下一個敘述。而第二次則會結束批次檔的執行。請鍵入 GOTO /?
來獲得 GOTO :EOF 擴充命令的描述。 這個命令可以讓您從批次檔中
\"return\" 。

此外,批次檔參數的參考 (%0, %1,
及其他) 已經做了如下的擴充:


%* 在批次檔中,這代表所有的參數 (e.g. %1 %2 %3
%4 %5 ...)

批次參數的取代 (%n) 已經做了改進。 您現在可以
選用下列的語法:

%~1 - 展開 %1 且移除包圍的引號 (\")
%~f1 - 展開 %1 為一個完全符合的路徑名稱
%~d1 - 只展開 %1 為磁碟機代號
%~p1 - 只展開 %1 為路徑
%~n1 - 只展開 %1 為檔名
%~x1 - 只展開 %1 為副檔名
%~s1 - 展開的路徑只包含短檔名
%~a1 - 展開 %1 為檔案的檔案屬性
%~t1 - 展開 %1 為檔案的日期/時間
%~z1 - 展開 %1 為檔案的長度
%~$PATH:1 - 搜尋所有列在 PATH 環境變數內的目錄
且展開 %1 為
第一個找到的完全符合檔名。
如果沒有定義環境變數名稱
或是搜尋找不到檔案,
則這個修飾元會展開成
空字串。

修正程式可合併使用,進而得到複合結果:

%~dp1 - 只擴充 %1 到磁碟機代號和路徑
%~nx1 - 只擴充 %1 到檔案名稱和副檔名
%~dp$PATH:1 - 搜尋 %1 的 PATH 環境
變數中所列的目錄,並擴充至
磁碟機代號和第一個找到的路徑。
%~ftza1 - 將 %1 擴充成 DIR ,和輸出行相同

在上例中,%1 和 PATH 可被其他有效值取代。%~ 語法是
以正確的引數數字作結尾。%~ 修正程式可能無法使用 %*


CD - 顯示目前工作目錄的名稱或是變更目錄

CHDIR [/D] [drive:][path]
CHDIR [..]
CD [/D] [drive:][path]
CD [..]

.. 指定變更到上層目錄。

鍵入 CD drive: 即可顯示指定磁碟機的目前工作目錄。
僅鍵入 CD 而不加參數,即可顯示目前的磁碟機和目錄。

使用 /D 參數可以同時變更工作磁碟機及其工作目錄。

如果您啟用擴充命令,CHDIR 的變更如下:

目前的目錄字串會被轉換成與磁碟上名稱相同大小寫的字串。
所以如果磁碟上的目錄是 C:\\Temp 的話,CD C:\\TEMP 命令實
際上會轉換為 CD C:\\Temp。

CHDIR 命令不會將空格當成分隔字元,所以如果您要切換到含
有空格字元的目錄時,就算您不使用引號來括住目錄名稱,也
一樣可以用 CD 命令切換到該目錄。例如:

cd \\winnt\\profiles\\username\\programs\\start menu

就相等於:

cd \"\\winnt\\profiles\\username\\programs\\start menu\"

如果您停用擴充命令,就必須輸入前一種命令。


CHCP - 顯示或設定使用中字碼頁編號

CHCP [nnn]

nnn 指定字碼頁編號。

不加參數鍵入 CHCP 顯示使用中字碼頁編號。


CHDIR - 顯示目前工作目錄的名稱或是變更目錄

CHDIR [/D] [drive:][path]
CHDIR [..]
CD [/D] [drive:][path]
CD [..]

.. 指定變更到上層目錄。

鍵入 CD drive: 即可顯示指定磁碟機的目前工作目錄。
僅鍵入 CD 而不加參數,即可顯示目前的磁碟機和目錄。

使用 /D 參數可以同時變更工作磁碟機及其工作目錄。

如果您啟用擴充命令,CHDIR 的變更如下:

目前的目錄字串會被轉換成與磁碟上名稱相同大小寫的字串。
所以如果磁碟上的目錄是 C:\\Temp 的話,CD C:\\TEMP 命令實
際上會轉換為 CD C:\\Temp。

CHDIR 命令不會將空格當成分隔字元,所以如果您要切換到含
有空格字元的目錄時,就算您不使用引號來括住目錄名稱,也
一樣可以用 CD 命令切換到該目錄。例如:

cd \\winnt\\profiles\\username\\programs\\start menu

就相等於:

cd \"\\winnt\\profiles\\username\\programs\\start menu\"

如果您停用擴充命令,就必須輸入前一種命令。


CHKDSK - 檢查磁碟並顯示狀態報告

CHKDSK [volume[[path]filename]]] [/F] [/V] [/R] [/X] [/I] [/C] [/L[:size]]


volume 指定磁碟機代號 (後接冒號),
掛接點或磁碟區名稱。
filename 只能用在 FAT/FAT32: 指定要進行分散程度檢查的檔案。
/F 修復磁片上的錯誤。
/V FAT/FAT32 模式: 顯示磁碟上每個檔案的完整路徑
及名稱。
NTFS 模式: 如果有清除的訊息,也一併顯示。
/R 找出損壞的磁區並復原可讀取的資訊。
(包含 /F)。
/L:size 只適用於 NTFS 模式: 將記錄檔大小變更為指定的 KB
數值。如果沒有指定記錄檔大小,就顯示目前的大小。
/X 如果必須的話,強制先解下磁碟區。所有在
磁碟區上開啟的控制代碼都會失效 (包含 /F)。
/I 只適用於 NTFS 模式: 不檢查索引項目。
/C 只適用於 NTFS 模式: 跳過資料夾結構的循環檢查。


使用 /I 或 /C 參數跳過某些磁碟區檢查,可以在執行
Chkdsk 時減少檢查時間。


CHKNTFS - 開機時顯示或修正磁碟檢查

CHKNTFS volume [...]
CHKNTFS /D
CHKNTFS /T[:time]
CHKNTFS /X volume [...]
CHKNTFS /C volume [...]

volume 指定磁碟機代號 (後接冒號),
掛接點或磁碟區名稱。
/D 將電腦還原成預設行為。會在啟動時對全部的磁
碟機進行檢查,有問題的磁碟機會執行 chkdsk。
/T:time 變更 AUTOCHK 倒數計時的時間成
指定的總計秒。如果時間沒有設定,
請顯示目前的設定。
/X 在預設開機檢查中排除磁碟檢查。被排除的
磁碟機不會保留在命令呼叫之間。
/C 進行開機時的磁碟檢查排程。如果
磁碟有問題,會執行 chkdsk。
/E 啟用 NTFS 磁碟區自動升級。升級後必需
重新開機。(這會啟用所有的 NTFS 進階
支援功\能。)

如果沒有指定參數 , CHKNTFS 將顯示每台磁碟
有問題的位元狀態或是在下次重新開機時排程檢查。


CLS - 清除螢幕

CLS


CMD - 啟動 Windows XP 命令直譯器新例項

CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF]
[[/S] [/C | /K] string]

/C 執行字串中所描述的命令然後結束命令視窗
/K 執行 字串中所描述的命令然後保留命令視窗
/S 修改字串在 /C 或 /K (參看下方)
/Q 關閉 echo
/D 從登錄中停用 AutoRun 命令(參看下方)
/A 將內部命令輸出結果以 ANSI 格式導向 pipe 或檔案
/U 將內部命令輸出結果以 Unicode 格式導向 pipe 或檔案
/T:fg 設定幕前/幕後色彩 (參看 COLOR /?)
/E:ON 啟用命令延伸 (參看下方)
/E:OFF 停用命令延伸 (參看下方)
/F:ON 啟用檔案及目錄名稱完整字元(參看下方)
/F:OFF 停用檔案及目錄名稱完整字元(參看下方)
/V:ON 啟用延遲環境變數延伸,用 c 作為分隔字元。例如,
/V:ON 可以讓 !var! 在執行時展開變數 var。文法
var 則會在輸入時展開變數,這在 FOR 迴圈之中是
完全不同的事。
/V:OFF 停用延遲環境變數展開

請注意用命令分隔字元 \'&&\' 隔開的多個命令如果被引號包含時則會被
當成字串來接受。此外,為了相容性的原因,/X 的作用與 /E:ON 相同;
/Y 與 /E:OFF 相同且 /R 與 /C 相同。其餘的參數則會被忽略。

如果指定了/C 或 /K,則在參數後的其餘命令列會被當成命令列來處理,
其中使用下面的邏輯來處理引號字元 (\") :

1. 如果所有下列條件都符合,那麼命令列上的引號會被保留:

- 沒有 /S 參數
- 正好有兩個引號
- 在兩個引號之間沒有下列特殊字元: &<>()@^|
- 兩個引號之間有一些空格
- 在兩個引號之間的字串是執行檔的檔案名稱。

2. 否則,舊的行為是如果第一個字元是引號,會把前置字元
去掉,並將命令列中第一個引號及最後一個引號之間的所有
文字便成保留文字。

如果您在命令列中未指定 /D,當 CMD.EXE 起動後,
它會尋找下列 REG_SZ/REG_EXPAND_SZ的 登錄變數。如果
有一個存在或兩個都存在,命令會執行第一個變數。

HKEY_LOCAL_MACHINE\\Software\\Microsoft\\CommandProcessor\\AutoRun

及/或

HKEY_CURRENT_USER\\Software\\Microsoft\\CommandProcessor\\AutoRun

將命令擴充功\能預設成啟用狀態。您可以在特定的
呼叫中,用 /E:OFF 參數來停用擴充功\能。
您可以啟用或停用一台電腦上或使用者登入工作階段中所有
CMD.EXE 呼叫的擴充功\能,如果您要這樣作,
請使用 REGEDT32.EXE 來設定以下的 REG_DWORD 值:

HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Command Processor\\EnableExtensions

及/或

HKEY_CURRENT_USER\\Software\\Microsoft\\Command Processor\\EnableExtensions

到 0x1 或 0x0。使用者指定設定的執行優先順序高於電腦上
的設定。命令列參數的執行優先順序高於登錄中的設定值。


擴充命令包括下列命令的變更及(或)
新增:

DEL or ERASE
COLOR
CD or CHDIR
MD or MKDIR
PROMPT
PUSHD
POPD
SET
SETLOCAL
ENDLOCAL
IF
FOR
CALL
SHIFT
GOTO
START (也包括援用外部命令之變更)
ASSOC
FTYPE

請鍵入 HELP 命令名稱,以查閱\說明。

預設狀態下,不會啟用延遲環境變數擴充。您可以
使用 /V:ON 或 /V:OFF 參數在執行 CMD.EXE 時啟用
或停用完整檔案名稱。您也可以用 REGEDT32.EXE 來
修改以下 REG_DWORD 值,來啟用或停用整個電腦上或
使用者登入工作階段中所有 CMD.EXE 的檔案名稱完整功\能:

HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Command Processor\\DelayedExpansion

及/或

HKEY_CURRENT_USER\\Software\\Microsoft\\Command Processor\\DelayedExpansion

其值可為 0x1 或 0x0。使用者指定設定的優先順序高於
電腦設定。命令列參數優先順序高於登錄設定值。

如果已啟用延遲環境變數擴充,驚嘆號字元會在執行時
被用來取代環境變數值。

預設無法啟用檔案和目錄名稱完成。 您可以為特定的 CMD.EXE 呼叫,以
/F:ON 或 /F:OFF 開關啟用或停用檔案名稱完成。 您可以啟用或停用在同
一部電腦上所有 CMD.EXE 的呼叫完成及/或使用者登入工作階段。方法是使
用 REGEDT32.EXE 設定其一或兩者登錄中的 REG_DWORD 值:

HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Command Processor\\CompletionChar
HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Command Processor\\PathCompletionChar

及/或

HKEY_CURRENT_USER\\Software\\Microsoft\\Command Processor\\CompletionChar
HKEY_CURRENT_USER\\Software\\Microsoft\\Command Processor\\PathCompletionChar

用於特定功\能的控制字元十六進位值 (例如 0x4 是 Ctrl-D ; 0x6 是
Ctrl-F)。使用者指定設定的執行優先順序高於電腦上的設定。命令列參數
的執行優先順序高於登錄中的設定值。

如果以 /F:ON 開關啟用完成,則用於目錄名稱完成的控制字元是 Ctrl-D
而用於檔案名稱完成的控制字元是 Ctrl-F。如果您要停用在登錄中的特定
完成字元,請使用空間值 (0x20),因為它不是正確的控制字元。

當您鍵入其中一個控制字元後,完成功\能會被啟動。如果路徑字串已存在,
而且所建立的路徑清單也符合的話,完成函數會讀取到指標所在左方為止
的路徑字串。然後它會顯示第一個符合的路徑。如果找不到符合的路徑,
它會發出嗶聲並保留顯示。如果您重覆按相同的控制字元,它將在符合的路
徑清單中循環執行。如果您同時按下 Shift 鍵與控制字元,可在清單中反
向移動。如果您進行編輯後再按控制字元的話,已儲存的符合路徑清單會被
丟棄,並建立新的清單。如果您在檔案及目錄完成功\能之間切換,會有同樣
的情況發生。這兩個控制字元不同之處是:檔案完成字元可同時對應檔案及
目錄名稱,而目錄完成字元只能對應目錄名稱。如果您將檔案完成功\能用在
內建目錄命令上 (CD,MD 或 RD) 也等於使用了目錄完成功\能。

如果您在路徑字串兩端加上引號,完成功\能鍵就可正確處理包含空格或其他
特殊字元的檔案名稱。還有,如果您備份後,又在命令列中呼叫完成功\能的
話,已呼叫過完成功\能的指標右方的文字會被丟棄。

要求加上引號的特殊字元有:
&()[]{}^=;!\'+,`~


COLOR - 設定預設主控台的前景及背景色彩

COLOR [attr]

attr 指定主控台輸出的色彩屬性。

色彩屬性由 TWO 十六進位數字所指定 -- 第一個對應於背景,第二個對應於
前景。每一數位可為以下其中一個值:

0 = 黑色 8 = 灰色
1 = 藍色 9 = 淡藍色
2 = 綠色 A = 淡綠色
3 = 藍綠色 B = 淡藍綠色
4 = 紅色 C = 淡紅色
5 = 紫色 D = 淡紫色
6 = 黃色 E = 淡黃色
7 = 白色 F = 亮白色

如果沒有指定引數,這個命令會還原成 CMD.EXE 啟動時的色彩。這個值可能
來自目前主控台視窗、/T 命令列參數或來自 DefaultColor 登錄值。

COLOR 命令設定 ERRORLEVEL 為 1,如果您嘗試執行
COLOR 命令,並指定相同的前景和背景色彩的話。

範例: \"COLOR fc\" 產生淡紅色於亮白色上


COMP - 比較兩個檔案或兩組檔案的內容

COMP [data1] [data2] [/D] [/A] [/L] [/N=number] [/C] [/OFF[LINE]]

data1 指定第一個或第一組要比較的檔案的位置與檔名。
data2 指定第二個或第二組要比較的檔案的位置與檔名。
/D 以十進位格式來顯示不同之處。
/A 以 ASCII 字元來顯示不同之處。
/L 顯示不同之處的行號。
/N=number 只比較每個檔案中第一個指定的行號。
/C 比較檔案時忽略 ASCII 字母的大小寫。
/OFF[LINE] 不要略過有離線屬性設定的檔案。

要比較一組檔案,請在 data1 和 data2 參數中使用萬用字元。


COMPACT - 顯示或改變 NTFS 磁碟分割上的檔案壓縮

COMPACT [/C | /U] [/S[:dir]] [/A] [/I] [/F] [/Q] [filename [...]]

/C 壓縮指定的檔案。將標示目錄使以後新增的檔案將被壓縮。
/U 解壓縮指定的檔案。將標示目錄使以後新增的檔案將不被解壓縮。
/S 對所給目錄及其所有子目錄下的檔案執行指定的作業,預設 \"dir\"
為目前的目錄。
/A 顯示有隱藏或系統屬性的檔案,這些檔案在預設中是被省略的。
/I 即使發生錯誤,仍繼續執行指定的操作。依預設,遇到錯誤時,
COMPACT 將停止。
/F 強迫壓縮所


CONVERT - 將 FAT 磁碟區轉換為 NTFS

CONVERT volume /FS:NTFS [/V] [/CvtArea:filename] [/NoSecurity] [/X]

volume 指定磁碟機代號 (後接冒號),
掛接點或磁碟區名稱。
/FS:NTFS 指定將磁碟區轉換成 NTFS。
/V 指定在詳細訊息模式下執行轉換。
/CvtArea:filename
在根目錄中指定一個相連的檔案作為
NTFS 系統檔案的置放點。
/NoSecurity 指定已轉換的檔案和目錄的安全性
設定值能讓每個人存取。
/X 必要的話,強迫磁碟區先卸下。
所有已開啟的磁碟區控制碼將失效。


COPY - 將一些檔案複製到另一個位置

COPY [/V] [/N] [/Y | /-Y] [/Z] [/A | /B ] source [/A | /B]
[+ source [/A | /B] [+ ...]] [destination [/A | /B]]

source 指定要複製的檔案。
/A 指定一個 ASCII 文字檔案。
/B 指定一個二位元檔案。
destination 為新檔案指定目錄及(或) 檔案名稱。
/V 確認新檔案是否正確寫入。
/N 使用短檔名來複製非 8.3 名稱的檔案
(如果可用的話)。
/Y 不顯示覆寫現存
目的檔案的確認提示。
/-Y 顯示覆寫現存目的
檔案的確認提示。
/Z 在可重新啟動模式中複製網路檔案。
參數 /Y 可以預先設定在 COPYCMD 環境變數中。
這可能會覆寫命令列中的 /-Y。預設值是
顯示覆寫確認提示,除非 COPY 命令是從
批次指令檔中執行。

如果要附加檔案,指定一個目的檔案,及數個
來源檔案 (使用萬用字元或 file1+file2+file3 格式)。


DATE - 顯示或設定日期

DATE [/T | date]

只鍵入 DATE 而不加上參數,可以顯示目前設定的日期,並且提示您輸入新的日
期。按 ENTER 鍵即可保持原來日期。

如果您啟用擴充命令,DATE 命令會支援 /T 參數,這個參數
會讓命令只輸出目前的日期,而不提示您輸入新日期。


DEL - 刪除一個或更多檔案

DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names

names 指定一個或更多檔案或目錄清單。
可以使用萬用字元來刪除多個檔案。 如果
指定目錄,這個目錄內的所有檔案
將被刪除。

/P 刪除每個檔案前,先提示確認。
/F 強制刪除唯讀檔案。
/S 由所有子目錄刪除指定的檔案。
/Q 安靜模式,不要問是否確定刪除全域萬用字元
/A 根據屬性選取要刪除的檔案
attributes R 唯讀檔案 S 系統檔案
H 隱藏檔案 A 準備保存的檔案
- 首碼表示不是

如果您啟用擴充命令,DEL 和 ERASE 命令的變更如下:

/S 參數的顯示方式完全相反,它只會顯示已刪除的檔案,不會顯示它找不到的
檔案。


DIR - 顯示檔案清單以列出目錄中的檔案及子目錄

DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]
[/O[[:]sortorder]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]

[drive:][path][filename]
指定要顯示的磁碟機、目錄或檔案。

/A 依照指定的檔案屬性來顯示檔案。
attributes D 目錄 R 唯讀檔
H 隱藏檔 A 保存檔
S 系統檔案 - 無意義
/B 使用單純格式 (沒有標頭資訊或摘要)。
/C 顯示檔案大小千位數分隔符號。這是
預設值。 使用 /-C 來停用分隔符號的顯示。
/D 與寬的列表格式相同,但是依照欄來排序。
/L 使用小寫顯示。
/N 使用新的長列表格式,檔名會顯示在最右方。
/O 依照指定的排序順序來列出檔案。
sortorder N 依名稱 (英文字母) S 依大小 (最小的在前)
E 依副檔名 (英文字母) D 依照日期與時間 (日期較早的在前)
G 先列出子目錄 - 表示相反的順序
/P 當資料填滿整個螢幕時暫停顯示。
/Q 顯示檔案擁有者。
/S 顯示指定目錄及所有子目錄中的檔案。
/T 指定用來顯示或排序的時間欄位
timefield C 建立
A 上次檔案存取時間
W 上次寫入檔案時間
/W 使用寬的列表格式。
/X 顯示對非 8.3 格式的檔案產生的短檔名。
這個格式和 /N 相同,但是短檔名會插入在
長檔名之前。 如果沒有長檔名存在,該處會
顯示空白。
/4 顯示四位數的年份

參數可能會在 DIRCMD 環境變數預先設定。您可以在任何參數使用連字號字首(-)
來覆蓋\預先的設定--例如: /-W。


DISKCOMP - 比較兩片磁片的內容

DISKCOMP [磁碟機1: [磁碟機2:]]


DISKCOPY - 把一片磁片的內容複製到另一片中

DISKCOPY [磁碟機1: [磁碟機2:]] [/V]

/V 驗證訊息是否已正確複製。

兩片磁片的類型必須相同。
您可以把磁碟機 1 和磁碟機 2 指定成相同的磁碟機。


DOSKEY - 編輯命令列,重新呼叫 Windows XP 命令,及建立巨集

DOSKEY [/REINSTALL] [/LISTSIZE=size] [/MACROS[:ALL | :exename]]
[/HISTORY] [/INSERT | /OVERSTRIKE] [/EXENAME=exename] [/MACROFILE=filename]
[macroname=[text]]

/REINSTALL 安裝另一份 Doskey。
/LISTSIZE=size 設定命令歷程緩衝區的大小。
/MACROS 顯示所有的 Doskey 巨集。
/MACROS:ALL 顯示所有執行檔中含有 Doskey 巨集
的 Doskey 巨集。
/MACROS:exename 顯示指定的執行檔中的所有 Doskey 巨集。
/HISTORY 顯示存在記憶體中的所有命令。
/INSERT 指定您所鍵入的新文字插入在舊的文字中。
/OVERSTRIKE 指定您所鍵入的新文字覆蓋\舊的文字。
/EXENAME=exename 指定執行檔。
/MACROFILE=filename 指定要安裝的巨集檔案。
macroname 為您建立的巨集指定名稱。
text 指定您要記錄的命令。

向上與向下鍵叫回以前的指令; ESC 清除命令列;
F7 顯示命令歷程; ALT+F7 清除命令列歷程; F8 尋找命令歷程;
F9 以號碼選擇命令; ALT+F10 清除巨集定義

以下是在 Doskey 巨集定義中的特殊碼:
$T 命令分隔字元。允許\在一個巨集中使用多個命令。
$1-$9 批次檔參數。相當於批次檔中的 %1 到 %9。
$* 這個符號代表在命令列中巨集名稱後的所有文字。



轉載自:http://www.csie.ntu.edu.tw/~r91112/myDownload/WEB/CMD.html

2009年7月29日 星期三

解壓指令 - tar

tar [options] [tarfile] [other-files]
tar--long-option -function-options files


參數:
c, --create :建立一個壓縮文件
x, --extract :解開一個壓縮文件
t, --list :列出 .tar 裡面的文件!
Notice: 在參數的下達中, c/x/t 僅能存在一個!不可同時存在!因為不可能同時壓縮與解壓縮。

Z, --compress, --uncompress :使用compress命令處理備份文件
z, --gzip, --unzip :透過 gzip 處理備份文件
j, I, --bzip :使用bzip2命令處理備份文件
Notice:z和j都是在備份文件打包後才進行壓縮的操作的,並且,該操作會影響其他的參數

v, --verbose :壓縮的過程中顯示文件!不建議用在背景執行過程!
f fileName, --file=fileName :使用檔名,Notice: 在 f 之後要立即接檔名
C directoryName, --directory=directoryName :先進入指定的目錄,再釋放
--exclude FILE:在壓縮的過程中,不要將 FILE 打包!
--delete :將 .tar 中的某個檔案刪除


詳細參考:http://coz.tw/dz6/redirect.php?tid=18172&goto=lastpost


壓縮:
tar cjvf name.tar.bz2 /target /location
就地解縮:
tar xvf name.tar.bz2
解壓到不同目錄
tar xvf name.tar.bz2 -C /location

2009年7月22日 星期三

Tutorial 04a - 燈光的使用

重點API:
sandy.primitive.Box;
sandy.primitive.Cylinder;
sandy.primitive.PrimitiveMode;
sandy.primitive.Sphere;


  1. package
  2. {
  3. import flash.display.Sprite;
  4. import flash.events.Event;
  5. import flash.events.KeyboardEvent;
  6. import flash.ui.Keyboard;
  7. import sandy.core.Scene3D;
  8. import sandy.core.scenegraph.Camera3D;
  9. import sandy.core.scenegraph.Group;
  10. import sandy.core.scenegraph.TransformGroup;
  11. import sandy.materials.Appearance;
  12. import sandy.materials.attributes.CylinderEnvMap;
  13. import sandy.materials.attributes.LightAttributes;
  14. import sandy.materials.attributes.LineAttributes;
  15. import sandy.materials.attributes.MaterialAttributes;
  16. import sandy.materials.ColorMaterial;
  17. import sandy.materials.Material;
  18. import sandy.primitive.Box;
  19. import sandy.primitive.Cylinder;
  20. import sandy.primitive.PrimitiveMode;
  21. import sandy.primitive.Sphere;
  22. public class Example004a extends Sprite
  23. {
  24. private var scene:Scene3D;
  25. private var camera:Camera3D;
  26. private var tg:TransformGroup;
  27. // 設定燈光 x, y, z 軸參數
  28. private var lightX:Number = 0;
  29. private var lightY:Number = 0;
  30. private var lightZ:Number = 10;
  31. public function Example004a()
  32. {
  33. camera = new Camera3D(300, 300);
  34. camera.z = -400;
  35. var root:Group = createScene();
  36. scene = new Scene3D("scene", this, camera, root);
  37. // 設定場景燈光的方向位置
  38. scene.light.setDirection(lightX, lightY, lightZ);
  39. addEventListener(Event.ENTER_FRAME,
  40. enterFrameHandler);
  41. stage.addEventListener(KeyboardEvent.KEY_DOWN,
  42. keyPressed);
  43. }
  44. private function createScene():Group
  45. {
  46. var g:Group = new Group();
  47. tg = new TransformGroup();
  48. var materialAttr:MaterialAttributes =
  49. new MaterialAttributes(
  50. new LineAttributes(0, 0x2111BB, 0),
  51. new LightAttributes(true, 0.1)
  52. );
  53. var material:Material = new ColorMaterial(
  54. 0xFFCC33, 1, materialAttr
  55. );
  56. material.lightingEnable = true;
  57. var app:Appearance = new Appearance(material);
  58. var materialAttr2:MaterialAttributes =
  59. new MaterialAttributes(
  60. new LineAttributes(0, 0x2111BB, 0),
  61. new LightAttributes(true, 0.1)
  62. );
  63. var material2:Material = new ColorMaterial(
  64. 0xCC0000, 1, materialAttr
  65. );
  66. material2.lightingEnable = true;
  67. var app2:Appearance = new Appearance(material2);
  68. var materialAttr3:MaterialAttributes =
  69. new MaterialAttributes(
  70. new LineAttributes(0, 0x2111BB, 0),
  71. new LightAttributes(true, 0.1)
  72. );
  73. var material3:Material = new ColorMaterial(
  74. 0x008AE6, 1, materialAttr
  75. );
  76. material3.lightingEnable = true;
  77. var app3:Appearance = new Appearance(material3);
  78. // 產生一 Box 物件,並設定其參數,分別為:
  79. // 識別名稱、寬、高、深度、face generation 及 Quility
  80. var table:Box = new Box(
  81. "table", 10, 150, 200, PrimitiveMode.QUAD, 1
  82. );
  83. //table.enableBackFaceCulling = false;
  84. // 設定是否容許使用者改變呈現此 table 的方式
  85. table.useSingleContainer = false;
  86. // 設定 table 的外觀
  87. table.appearance = app;
  88. // 旋轉 table
  89. table.rotateY = 90;
  90. table.rotateX = 90;
  91. // 產生一 Cylinder 物件,並設定其參數,分別為
  92. // 識別名稱、半徑及高
  93. var leg01:Cylinder = new Cylinder("leg01", 5, 80);
  94. // 設定 leg01 的外觀
  95. leg01.appearance = app;
  96. // 設定 leg01 的 x,y,z 座標
  97. leg01.x = -80;
  98. leg01.y = -45;
  99. leg01.z = 50;
  100. var leg02:Cylinder = new Cylinder("lig02", 5, 80);
  101. leg02.appearance = app;
  102. leg02.x = 80;
  103. leg02.y = -45;
  104. leg02.z = 50;
  105. var leg03:Cylinder = new Cylinder("leg03", 5, 80);
  106. leg03.appearance = app;
  107. leg03.x = -80;
  108. leg03.y = -45;
  109. leg03.z = -50;
  110. var leg04:Cylinder = new Cylinder("leg04", 5, 80);
  111. leg04.appearance = app;
  112. leg04.x = 80;
  113. leg04.y = -45;
  114. leg04.z = -50;
  115. // 產生一 Sphere 物件,並設定其參數,分別為:
  116. // 識別名稱、半徑、水平切割數及垂直切割數
  117. var mySphere:Sphere = new Sphere("theSphere", 20, 20, 8);
  118. mySphere.useSingleContainer = true;
  119. mySphere.appearance = app2;
  120. mySphere.y = 25;
  121. mySphere.x = -30;
  122. var myBox:Box = new Box(
  123. "theBox", 60, 60, 60, PrimitiveMode.TRI, 3
  124. );
  125. myBox.useSingleContainer = true;
  126. myBox.appearance = app3;
  127. myBox.rotateY = 30;
  128. myBox.x = 40;
  129. myBox.y = 35;
  130. tg.addChild(table);
  131. tg.addChild(leg01);
  132. tg.addChild(leg02);
  133. tg.addChild(leg03);
  134. tg.addChild(leg04);
  135. tg.addChild(mySphere);
  136. tg.addChild(myBox);
  137. tg.rotateX = 5;
  138. g.addChild(tg);
  139. return g;
  140. }
  141. private function enterFrameHandler(evt:Event):void
  142. {
  143. // 將場景顯示快取設定為 false
  144. scene.render(false);
  145. }
  146. private function keyPressed(evt:KeyboardEvent):void
  147. {
  148. switch(evt.keyCode)
  149. {
  150. case Keyboard.PAGE_DOWN:
  151. // 減少場景燈光的亮度
  152. scene.light.setPower(scene.light.getPower() - 5);
  153. break;
  154. case Keyboard.PAGE_UP:
  155. // 增加場景燈光的亮度
  156. scene.light.setPower(scene.light.getPower() + 5);
  157. break;
  158. case Keyboard.UP:
  159. lightY += 10;
  160. scene.light.setDirection(lightX, lightY, lightZ);
  161. break;
  162. case Keyboard.DOWN:
  163. lightY -= 10;
  164. scene.light.setDirection(lightX, lightY, lightZ);
  165. break;
  166. case Keyboard.RIGHT:
  167. lightX += 10;
  168. scene.light.setDirection(lightX, lightY, lightZ);
  169. break;
  170. case Keyboard.LEFT:
  171. lightX -= 10;
  172. scene.light.setDirection(lightX, lightY, lightZ);
  173. break;
  174. }
  175. }
  176. }
  177. }


產出:



程式碼出處:http://www.flashsandy.org/tutorials/3.0/sandy_cs3_tut041