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 檔