跳轉到內容

Aros/使用者/DOS

來自 Wikibooks,開放世界中的開放書籍
Aros 維基百科的導航欄
Aros 使用者
Aros 使用者文件
Aros 使用者常見問題解答
Aros 使用者應用程式
Aros 使用者 DOS Shell
Aros/使用者/AmigaLegacy
Aros 開發文件
Aros 開發人員文件
從 AmigaOS/SDL 移植軟體
面向 Zune 初學者
Zune .MUI 類
面向 SDL 初學者
Aros 開發人員構建系統
特定平臺
Aros x86 完整系統 HCL
Aros x86 音訊/影片支援
Aros x86 網路支援
Aros Intel AMD x86 安裝
Aros 儲存支援 IDE SATA 等
Aros Poseidon USB 支援
x86-64 支援
摩托羅拉 68k Amiga 支援
Linux 和 FreeBSD 支援
Windows Mingw 和 MacOSX 支援
Android 支援
Arm Raspberry Pi 支援
PPC Power Architecture
雜項
Aros 公共許可證


AROS Shell

[編輯 | 編輯原始碼]

在 Dopus 5 Magellan 中 - 右鍵單擊 -> Icaros -> Shell

在 Wanderer(AROS 桌面/GUI)中,按 RightAROS + w(或 F12 + w)(或使用滑鼠右鍵訪問 Wanderer 螢幕頂部的選單)開啟 Shell 視窗。要關閉 Shell 視窗,請單擊 Shell 視窗左上角的 X,或鍵入

endcli

或者

endshell


初學者教程/基本使用

[編輯 | 編輯原始碼]

預設情況下,當前目錄將顯示為 Shell 提示符的一部分。預設情況下,起始點為“System:”,即作業系統的根目錄,也稱為 sys

System:>

鍵入“dir”並按回車鍵。您將看到當前目錄的內容。

System:>dir

您只需鍵入其名稱(並按回車鍵)即可執行可執行檔案或進入目錄。只需鍵入“c”即可進入“C”目錄(AROS DOS 不區分大小寫)。

System:>c

現在按兩次向上箭頭鍵。AROS Shell 擁有一個命令歷史記錄,允許您快速重複或重新使用命令。現在您應該再次看到“dir”命令,所以按回車鍵。您將看到剛剛進入的“c”目錄的內容。

System:c>dir

此目錄是 AROS 的主要可執行檔案位置,可以從任何目錄執行。現在鍵入“/”(一個斜槓)並按回車鍵。您剛剛向上移動了一個目錄,回到了“System:”。

System:>

現在嘗試另一個“dir”類似命令(位於“c”目錄中),“list”。

System:>list

輸出與“dir”非常相似。但您可以使用選項控制“list”輸出。AROS DOS 命令列選項透過其名稱識別,並最終透過其在命令列中的位置識別。試試這個

System:>list sub d

輸出現在將包含所有目錄內容,其名稱包含子字串“d”。另一個示例,另一個選項

System:>list sub d all

這將遞迴地列出與“d”匹配的內容。

AROS dos 指令碼編寫

[編輯 | 編輯原始碼]

http://uk.aminet.net/docs/help/adosbegin.lha

http://se.aminet.net/pub/aminet/docs/help/adosbegin.lha


IF <condition>
; these commands are executed if the condition is true
ELSE
; these commands are executed if the condition is false
ENDIF

<condition> 可以是以下之一

WARN - 前一個命令的返回值為 5 或更高。

ERROR - 前一個命令的返回值為 10 或更高。

FAIL - 前一個命令的返回值為 20 或更高。

EXISTS <filename> - 檢查檔案或目錄是否存在。

<a> EQ <b> - 字串比較。

<a> EQ <b> VAL - 數值比較。

<a> GT <b> - 與 EQ 相同,只是表示“大於”。

<a> GE <b> - 與 EQ 相同,只是表示“大於或等於”。

以上任何一個都可以透過 NOT 否定。例如,使用 NOT GT 表示“小於或等於”,使用 NOT GE 表示“小於”。



轉義碼

[編輯 | 編輯原始碼]
07 Bell - Flash screen and sound bell
08 Backspace - move cursor back one position
09 vertical tab - move cursor up one line
10 line feed - move cursor down one line
11 is not listed in my book
12 form feed - clear screen
13 Carriage return - move cursor to start of line
14 Set MSB of each character. (Print extended chars)
15 Clear MSB of each character.
*e[c - Clear window and turn all modes off
*e[0m - All modes turned off
*e[1m - Bold text enabled
*e[3m - Italic enable
*e[4m - Uderline
*e[7m - Inverted text enable
*e[8m - text becomes invisible (grey on grey)
*e[3xm - Text colour becomes colour x (0-7)
*e[4xm - Background colour becomes colour x (0-7)
*e[n@ - Insert n spaces at cursor position.
*e[nA - Cursor up n lines. Default 1
*e[nB - Cursor down n lines. Default 1
*e[nC - Cursor forward n characters. Default 1
*e[nD - Cursor back n characters. Default 1
*e[nE - Cursor next n lines(to column 1). Default 1
*e[nH - Cursor to row n (Y position)
*e[;nH - Cursor to column n (X position)
*e[y;xH - Cursor to position X,Y
*e[J - Erase from cursor to end of display
*e[K - Erase from cursor to end of line
*e[I - Insert line above line at cursor
*e[M - Delete line at cursor
*e[nS - Scroll up n lines
*e[nT - Scroll down n lines
*e[nt - set page length to n lines (in current font)
*e[nu - Set line length in characters of current font
*e[nx - Set left offset in characters
*e[ny - Set top offset in lines
*e[0 p - Disable cursor: Note space between zero and p
*e[ p - Enable cursor. Note space


Shell 中彩色文字的示例

prompt "*E[>1m*E[1;37;41m%n.%s> *E[0;32;41m"
echo "*E[0;0H*E[J" 
 
*E[>1m

這是一個所謂的 SGR 命令,它省略了前幾個引數。它將粗體開啟。

 
*E[1;37;41m%n.%s> 

SGR 命令指示:- 粗體(1) - 前景色 7(37)。這意味著它使用筆色 #7(預設情況下在 AROS 上為黑色,因此使用 setpencolor 命令)。- 使用背景色 1(41)。這意味著它使用筆色 #1(預設情況下在 AROS 上為黑色)。- %n 表示列印當前開啟的 cli/shell 編號 - %s 表示列印當前路徑 - > 在以上所有內容之後列印一個漂亮的管道標記(以及一個空格字元)。

 
*E[0;32;41m

SGR 命令指示:- 普通文字(0) - 前景色 2(32)。這意味著它使用筆色 #2(預設情況下在 AROS 上為白色)。- 背景色 1(41)。這意味著它使用筆色 #1(預設情況下在 AROS 上為黑色)。

 
*E[0;0H

命令“游標位置” - 將行設定為 0(0) - 將列設定為 0(0)。請注意,這似乎不像在經典系統(未經檢查)中那樣在 AROS 上工作。似乎 AROS 使用的最小編號為 1(對於左側和頂部)。

 
*E[J

命令“清除顯示”(此命令中未使用其他引數)。



驅動器、檔案、分配、目錄

[編輯 | 編輯原始碼]

每個 AROS 發行版中都會存在作業系統所需的一組特定目錄和檔案。此外,“分配”(邏輯的,而不是物理的,驅動器)指向物理驅動器分割槽或分割槽目錄結構中的位置。


物理驅動器

[編輯 | 編輯原始碼]
預設情況下,IDE 總線上的硬碟驅動器將分配驅動器名稱“DH0:”,“DH1:”等。
預設情況下,USB 快閃記憶體驅動器將分配驅動器名稱“DU0:”,“DU1:”等。
預設情況下,IDE 總線上的 CD/DVD 驅動器將分配驅動器名稱“CD0:”,“CD1:”等。



邏輯驅動器,“分配”

[編輯 | 編輯原始碼]

SYS: Extras: DEVS: Development: L: S: LIBS: C: ENV: RAM: ENVARC: MUI: T


目錄和檔案

[編輯 | 編輯原始碼]

SYS:Prefs

[編輯 | 編輯原始碼]

...包含所有系統首選項程式,例如“Screenmode”、“Locale”、“Time”、“Trident”(USB)等。是預設路徑的一部分,因此在 Shell 中輸入“screenmode”將啟動“Screenmode”首選項程式。


...包含裝置驅動程式和資料型別。將檔案移動到“SYS:Storage”的相應子目錄以停用它(重新啟動後)。更多(當前停用的)裝置驅動程式或資料型別可以在“SYS:Storage”下找到,移動到“Devs:”以啟用(重新啟動後)。

SYS:Storage

[編輯 | 編輯原始碼]

...是一個旨在儲存可選或當前未使用的裝置和資料型別的目錄。將“Devs:”的內容(見上文)移動到這裡以停用裝置驅動程式(重新啟動後)。


S:startup-sequence

[編輯 | 編輯原始碼]

...是一個在啟動作業系統時將執行的指令碼。它也用於某些應用程式來儲存其個人需求(如果有 - 大多數情況下這將是一行,例如“assign PROGRAMNAME: SYS:path/to/installation/of/PROGRAMNAME”)。


S:user-startup

[編輯 | 編輯原始碼]

...是一個由 S:startup-sequence 執行的指令碼。您可以在這裡放置自己的內容。假設您在“C:”以外的目錄(或預設“path”中的任何其他目錄)中安裝了一些可執行程式,但仍然想要在不鍵入完整路徑的情況下訪問它們,您可以新增類似這樣的行:“path WORK:path/to/my/program/ add”。

它也由一些應用程式用來儲存它們的個別需求(見上文)。


S:shell-startup

[編輯 | 編輯原始碼]

...是在啟動新 shell 時執行的指令碼。預設情況下,它包含定義 shell 提示符外觀的命令。請參閱“prompt”命令的描述。

AROS DOS 命令參考

[編輯 | 編輯原始碼]
desc
/A 必需引數
/F 列表中的最後一個引數
/K 關鍵字必須與引數一起輸入
/M 多個引數
/N 數字
/S 開關(可選)


Addbuffers
格式 Addbuffers Drive/A Buffers/N
目的 為磁碟緩衝區新增記憶體以提高速度。
引數
驅動器
驅動器名稱
緩衝區
要新增的 512k 緩衝區數量。
示例 Addbuffers DH0: 10


AddDatatypes
格式 AddDataTypes files/M QUIET/S REFRESH/S LIST/S
目的 啟用資料型別,或者如果在啟動時未檢測到則新增另一個數據型別
引數
檔案
要新增的資料型別列表,
安靜
無輸出,
重新整理
更新資料型別。
示例 AddDataTypes gif.datatype REFRESH


別名
格式 Alias Name String/F
目的 為 DOS 命令分配一個簡短名稱。
引數
姓名
別名,
字串
用於別名的字串或命令。
示例 Alias Del Delete


詢問
格式 Ask Prompt/A
目的 在指令碼中詢問問題(回覆 y/n)。使用 IF WARN 測試是否為是(值為 5)。
引數
提示
要顯示的文字。
示例 Ask "Are you sure? Y/n"


分配
格式 Assign Name Target/M LIST/S EXISTS/S DISMOUNT/S DEFER/S PATH/S ADD/S REMOVE/S
VOLS/S DIRS/S DEVICES/S
目的 為目錄路徑分配名稱。
引數
姓名
分配的名稱,
目標
目錄路徑,
清單
顯示分配列表
存在
測試分配是否存在(使用 IF WARN),
解除安裝
刪除分配
延遲
稍後分配
路徑
使用路徑新增分配,
新增
將新目標新增到現有路徑(如 LIBS:)
刪除
刪除分配,
列出卷,
目錄
列出目錄,
裝置
列出裝置。
示例 Assign Development: Extras:bin


可用
格式 Avail CHIP/S FAST/S TOTAL/S FLUSH/S
目的 記憶體可用性
引數
晶片
顯示晶片記憶體
快速
顯示快速記憶體
總計
顯示所有記憶體
重新整理
釋放記憶體
示例 Avail TOTAL


中斷
格式 Break Process/A/N ALL/S C/S D/S E/S F/S
目的 停止程式(見狀態)
引數
過程
程序名稱或埠
全部
應用 C、D、E 和 F
C
應用 Ctrl+C
D
應用 Ctrl+d
E
應用 Ctrl+E
F
應用 Ctrl+F
示例 Break 2 C


CD
格式 CD Dir/A
目的 更改目錄
引數
目錄
要更改到的目錄
示例 CD Text_Files


ChangeTaskPri
格式 ChangeTaskPri Pri=Priority/A/N Process/K/N
目的 更改程式的執行優先順序(見狀態)
引數
優先順序
要應用的優先順序(-128 到 +127)
過程
程序號(見狀態)
示例 ChangeTaskPri 2 1


Conclip
格式 Conclip Unit/N OFF/S
目的 啟用剪貼簿裝置
引數
單元
剪貼簿單元
關閉
關閉剪貼簿
示例 Conclip 1


複製
格式 Copy From/M To/A ALL/S QUIET/S BUF=BUFFER/K/N CLONE/S DATES/S NOPRO/S COM/S NOREQ/S
目的 複製檔案(帶/不帶保護位)
引數
要複製的檔案,
要複製到的目錄或檔案
全部
複製所有檔案,
安靜
無輸出,
緩衝區
緩衝區大小(預設 = 100K)
克隆
複製檔案和日期戳、保護位和註釋
日期
也複製日期戳
無保護
設定預設保護位
評論
複製註釋
無請求
沒有請求者彈出視窗
示例 Copy mydoc.txt docs: Dates


日期
格式 Date Day Date Time To=Ver/K
目的 顯示/更改日期或時間
引數
一天
星期幾,
日期
日期為 dd-mmm-yy 格式
時間
時間為 hh:mm[:ss] 格式
儲存到檔名
示例 Date To=date.txt


刪除
格式 Delete File/M/A ALL/S QUIET/S FORCE/S
目的 刪除檔案和/或目錄。
引數
檔案
一個或多個檔案
全部
刪除所有子資料夾和檔案
安靜
無輸出
強制
刪除時忽略保護標誌
示例 Delete OldFilesDir All


目錄
格式 Dir Dir Opt/K ALL/S DIRS/S FILES/S INTER/S
目的 列出目錄的內容
引數
目錄
目錄
選擇
選項
目錄
列出目錄
檔案
列出檔案
互動
互動模式。
示例 Dir S: Files


Diskchange
格式 Diskchange Device/A
目的 告訴 Dos 在非自動感應磁碟驅動器中已交換了磁碟。
引數
裝置
可移動裝置的名稱。
示例 Diskchange DU2


回聲
格式 Echo String/M NOLINE/S FIRST/K/N LEN/K/N TO/K
目的 在指令碼中顯示文字或部分文字字串。
引數
字串
要顯示的文字
無行
不列印新行
第一
第一個字元的位置
長度
子字串的長度
目標檔案
示例 Echo "Enter your name: " NoLine


其他
格式 其他
目的 與 IF 一起使用,如果不為真,則執行這些命令
示例

If Exists s:User-Startup Else Endif


EndCLI
格式 EndCLI
目的 關閉 CLI 控制檯視窗
示例 EndCLI


ENDIF
格式 ENDIF
目的 結束 IF..ELSE..ENDIF 塊
示例 If $Age GT 65

Else Endif


Endskip
格式 Endskip
目的 停止 SKIP 分支(用於除錯)
示例 Endskip


評估
格式 Eval Value1/A Op Value2/M To/K LFormat/K
目的 計算簡單的算術表示式
引數
值 1,值 2
要計算的值(十進位制、十六進位制 (0xn) 或八進位制 (0nnn),
運算
運算子 (+,-,*,/,^,%),
要儲存結果的檔案,
LFormat
輸出格式字串(使用 *n 表示換行符)。
示例 Eval $count + 1 to env:count


執行
格式 Execute File/A
目的 執行指令碼或批處理檔案
引數
檔案
要執行的指令碼檔案
示例 Execute PCD


Failat
格式 Failat RCLIM/A
目的 更改指令碼的失敗限制(0,5,10,20)
(0 - 正常,5 - 警告,10 - 錯誤,20 - 失敗)
引數
RCLIM
Failat 編號(0-20)
示例 Failat 20


故障
格式 Fault Error/N/M
目的 顯示來自程式碼的錯誤訊息
引數
錯誤
一個或多個錯誤號
示例 Fault 221
"Fault 221: Disk is full"


FileNote
格式 Filenote File/A Comment ALL/S QUIET/S
目的 將註釋附加到檔案(見 LIST)
引數
檔案
要添加註釋的檔案
評論
要應用的文字
全部
應用於所有檔案,
安靜
無輸出
示例 FileNote List.txt "A list of people's names"


格式
格式 Format Device Drive/K/A Name/K/A OFS/FFS/SFS
DIRCACHE/S NODIRCACHE/S NOICONS/S QUICK/S
目的 初始化 AROS 磁碟(在系統抽屜中)
引數
裝置|驅動器
要格式化的磁碟裝置或名稱
姓名
新的卷名稱
OFS
舊檔案系統
FFS
快速檔案系統
國際|國際
FFS 國際模式
NoIntl|NoInternational
國際模式關閉
SFS
智慧檔案系統
DirCache|NoDirCache
目錄快取開啟或關閉,
無圖示
沒有磁碟或垃圾桶圖示
快速
格式化不那麼徹底
示例 format drive dh0: name AROS

Format Drive DH2: Name Docs SFS NOICONS QUICK


獲取
格式 Get Name/A
目的 返回本地 env 變數的內容
引數
姓名
環境變數名稱
示例 Get RC


Getenv
格式 Getenv Name/A
目的 返回全域性環境變數的內容
引數
姓名
環境變數名稱
示例 Getenv Wanderer


Iconx
格式 Iconx
目的 使指令碼可以從 Workbench 執行。該指令碼必須具有一個 Project .info 檔案,並且
預設工具設定為 c:IconX 以執行它。
示例 Iconx


如果
格式 If NOT/S WARN/S ERROR/S FAIL/S EQ/K GT/K GE/K VAL/S EXISTS/K
目的 如果條件為真,則執行以下命令,直到遇到 ELSE 或 ENDIF。
引數
不是
反轉布林結果,
警告
測試來自先前命令的警告標誌,
錯誤
測試來自先前命令的錯誤標誌,
失敗
測試來自先前命令的失敗標誌,
平等
相等測試,
大於
大於測試,
大於等於
大於或等於測試,
VAL
輸入是數字,
存在
測試檔案是否存在。
示例 IF WARN, IF $count GT 10, IF EXISTS C:List


資訊
格式 Info Device
目的 顯示有關磁碟的資訊
引數
裝置
要顯示的裝置名稱
示例 資訊 DH0


安裝
格式 安裝裝置/A NOBOOT/S CHECK/S FFS/S
目的 將啟動塊儲存到磁碟。如果只有一個驅動器型別 INSTALL ? 並且
交換磁碟,然後輸入 DF0: 並按 RETURN 儲存啟動塊。
引數
裝置
安裝啟動塊的磁碟,
NoBoot
擦除啟動塊,
檢查
測試啟動塊,
FFS = 使用快速檔案系統。
示例 安裝 DH0


IPrefs
格式 IPrefs
目的 啟動時初始化首選項檔案。
示例 IPrefs


加入
格式 加入檔案/M/A AS=TO/K/A
目的 將兩個或多個檔案合併在一起。
引數
檔案
要合併在一起的檔案,
到|作為
目標檔案
示例 將 File1 File2 File3 合併為 FileFull


標籤
格式 標籤標籤
目的 在指令碼中指定一個要跳過的標籤
引數
標籤
標籤名稱
示例 標籤 PROC2


清單
格式 列出 Dir/M P=PAT/K KEYS/S DATES/S NODATES/S To/K Sub/K Since/K Upto/K
QUICK/S BLOCK/S NOHEAD/S FILES/S DIRS/S LFORMAT/K ALL/S
目的 列出目錄中的檔案詳細資訊。
引數
目錄
一個或多個目錄名
顯示鍵
NoDates
不顯示日期
目標檔案
包括子目錄
自從
列出自給定日期以來的檔案
直到
列出截至給定日期的檔案
快速
簡單目錄列表
以塊大小列出檔案
NoHead
不顯示標題行
檔案
僅檔案
目錄
僅目錄
LFormat
使用此格式字串輸出列表
全部
所有檔案
示例 列出開發:塊 日期 自=01-Jul-00


鎖定
格式 鎖定驅動器/A ON/S OFF/S 密碼
目的 阻止裝置寫入。
引數
驅動器
要鎖定的驅動器
開|關
開啟或關閉鎖定
密碼
指定密碼。
示例 鎖定 DH1: 開 GHK459


建立目錄
格式 建立目錄 名稱/M
目的 建立一個或多個新目錄。
引數
姓名
要建立的一個或多個目錄。
示例 建立目錄 DH1:Docs DH1:Basic DH0:TempFiles


建立連結
格式 建立連結 從/A 到/A HARD/S FORCE/S
目的 在檔案之間建立邏輯連結
引數
連結檔案
實際檔案
硬連結
強制
連結到子目錄
示例 建立連結 T C:Type 硬


掛載
格式 掛載 裝置/M 從/K
目的 載入並掛載裝置
引數
裝置
要掛載的裝置
掛載檔案
示例 掛載 DEVS:CD0


新Shell
格式 新Shell 視窗 從
目的 開啟一個新的 Shell 控制檯 (CON) 視窗
引數
視窗
視窗配置字串
Shell-Script 的替代指令碼。
示例 新Shell 從 S:Shell-Startup


路徑
格式 路徑 路徑/M ADD/S SHOW/S RESET/S REMOVE/S QUIET/S
目的 設定或更改程式搜尋路徑
引數
路徑
要更改的目錄路徑
新增
新增路徑
顯示
顯示路徑,
重置
清除路徑
刪除
從路徑中刪除條目
安靜
無輸出
示例 路徑 SC:C 新增


提示
格式 提示 提示
目的 更改提示文字(程式碼:%R = 上次返回值,
%S = 當前路徑,%N = CLI 號碼)
引數
提示
路徑格式
示例 提示 "%N.%S> "


保護
格式 保護 檔案/A 標誌 ADD/S SUB/S ALL/S QUIET/S
目的 更改檔案的“rwedsp”標誌。(r=讀,w=寫,e=執行,d=刪除,s=指令碼,p=純)
引數
檔案
要更改的檔案
標誌
一個或多個標誌
新增
將標誌新增到現有標誌中
從檔案中刪除標誌
全部
更改所有檔案
安靜
無輸出
示例 保護 編輯器 rwed


退出
格式 退出 RC/N
目的 退出指令碼,並帶可選返回值
引數
RC
返回值
示例 退出 5


重新命名
格式 重新命名 驅動器/A 名稱/A
目的 更改磁碟名稱
引數
驅動器
要更改的磁碟
姓名
新的卷名稱
示例 重新命名 DH2: Documents


重新命名
格式 重新命名 從/A/M 到=作為/A QUIET/S
目的 重新命名或移動一個或多個檔案
引數
舊檔名
到|作為
新檔名
安靜
無輸出
示例 重新命名 MyDoc 為 MyDoc.doc


請求選擇
格式 請求選擇 標題/A 正文/A 小工具/M PubScreen/K
目的 透過請求器詢問輸入
引數
標題
對話方塊標題
正文
對話方塊文字
小工具
按鈕列表
Pubscreen
要使用的螢幕
示例 請求選擇 >ENV:RT "格式" "即將格式化硬碟*n確認嗎?" "繼續" "絕不!"


請求檔案
格式 請求檔案 抽屜 檔案/K 模式/K 標題/K 肯定/K 否定/K 接受模式/K 拒絕模式/K
SAVEMODE/S MULTISELECT/S DRAWERSONLY/S NOICONS/S PUBSCREEN/K
引數
抽屜
要使用的初始抽屜,
檔案
初始檔名,
模式
使用模式作為過濾器,
標題
對話方塊標題,
肯定
確定按鈕文字,
否定
取消按鈕文字,
接受模式
定義要顯示的檔案模式(覆蓋模式),
拒絕模式
要隱藏的檔案模式,
儲存模式
更改顏色以指示儲存或其他模式,
多選
允許多檔案選擇,
僅抽屜
僅顯示目錄,
無圖示
抑制資訊檔案,
PubScreen
要使用的螢幕。
目的 透過 ASL 檔案請求器詢問檔名
示例 請求檔案 >ENV:File 標題 "選擇檔案" 肯定 "載入" Noicons


駐留
格式 駐留 名稱 檔案 REMOVE/S ADD/S REPLACE/S PURE=FORCE/S SYSTEM/S
目的 將 AmigaDOS 命令儲存在記憶體中(比每次執行時從磁碟重新載入更快)。
要確保可以使命令駐留,請檢查純標誌(參見列表)。
引數
名稱|檔案
要使之駐留的檔案,
刪除
從駐留列表中刪除檔案,
新增
將檔案新增到駐留記憶體中,
純|強制
強制非純檔案駐留,
系統
顯示系統的駐留程式碼段。
示例 駐留 C:Dir 純


執行
格式 執行 命令/F
目的 在後臺執行程式(多工)
引數
命令
要執行的程式
示例 執行 DirectoryOpus > NIL


搜尋
格式 搜尋 從/M 搜尋/A ALL/S NONUM/S QUIET/S QUICK/S FILE/S PATTERN/S
目的 在磁碟上的檔案或檔案中搜索字串
引數
要從中搜索的目錄,
搜尋
要搜尋的文字,
全部
搜尋子目錄,
NoNum
不顯示行號,
安靜
無輸出,
快速
減少輸出列表,
檔案
搜尋檔案而不是內容,
模式
使用模式搜尋。
示例 搜尋 SYS: "List" 檔案 全部


設定
格式 設定 名稱 字串/F
目的 設定或列出本地環境變數(本地於當前 shell 或當前程序)
引數
姓名
變數名,
字串
變數的文字或數字
示例 設定 MyName "Peter"


設定時鐘
格式 設定時鐘 LOAD/S SAVE/S RESET/S
目的 從電池供電的時鐘載入或設定日期和時間
引數
載入
從時鐘載入日期
儲存
將日期和時間儲存到時鐘
重置
重置時鐘
示例 日期 27-Nov-00 10:00,設定時鐘 儲存


設定日期
格式 設定日期 檔案/A 星期幾 日期 時間 ALL/S
目的 設定檔案或目錄的日期(參見列表)
引數
檔案
要更改的檔案,
星期幾
星期幾,
日期
日期,
時間
時間,
全部
所有檔案
示例 設定日期 DEVS: 星期一 10:30


設定環境
格式 設定環境 名稱 字串/F
目的 更改環境變數的內容
引數
姓名
變數名
字串
變數的文字或數字
示例 設定環境 Wanderer "44"


設定鍵盤
格式 設定鍵盤 鍵盤對映/A
目的 使用 Devs:Keymaps 中的佈局設定鍵盤佈局。您可以改用輸入首選項。
引數
鍵盤對映
要使用的鍵盤對映檔案
示例 設定鍵盤 USA0


跳過
格式 跳過 標籤 BACK/S
目的 跳到指令碼中的標籤(參見標籤)。如果標籤出現在跳過命令之前,請使用後退。
引數
標籤
要跳過的標籤名稱,
後退
在指令碼中返回到標籤
示例 跳過 Lab2 後退


排序
格式 排序 從/A 到/A Colstart/K CASE/S NUMERIC/S
目的 對檔案進行排序,並將結果輸出到新檔案
引數
要排序的檔案,到 = 輸出檔案,Colstart = 要排序的列,
大小寫
大寫條目先進行,
數字
輸入被視為數字。
示例 排序 Figures 到 SortedFigures 數字


堆疊
格式 堆疊 大小/N
目的 更改/顯示以位元組為單位的堆疊空間量。
引數
大小
以位元組為單位的堆疊大小
示例 堆疊 1000000


狀態
格式 狀態 程序/N FULL/S TCB/S CLI=ALL/S COM=COMMAND/K
目的 顯示正在執行的程式的狀態。TCB 是任務控制塊
引數
過程
任務編號
全部
程序資訊的完整輸出
TCB
除命令名稱之外的所有資訊
CLI|全部
僅命令資訊
COM|命令
搜尋命令
示例 狀態 2 全部


型別
格式 N/K HEX/S NUMBER/S
目的 在螢幕上顯示文字檔案的內容,並使用十六進位制顯示二進位制檔案,並帶可選行號。
引數
要顯示的文字檔案
輸出檔案或裝置
選項 H | 十六進位制
以十六進位制值顯示
選項 N | 編號
編號行。
示例 型別 C:DIR 十六進位制


取消設定
格式 取消設定 名稱
目的 刪除本地環境變數
引數
姓名
環境變數名稱
示例 取消設定 MyName


取消設定環境
格式 取消設定環境 名稱
目的 刪除全域性環境變數
引數
姓名
環境變數名稱
示例 取消設定環境 Wanderer


取消別名
格式 取消別名 名稱
目的 刪除命令的簡短名稱
引數
姓名
別名名稱
示例 取消別名 MyDir


版本
格式 版本 名稱 版本/N 修訂版/N FILE/S FULL/S 單位/N INTERNAL/S RES/S
目的 顯示工作臺、庫或裝置版本資訊。
引數
姓名
檔案
版本
列印 Kickstart 或工作臺編號,設定環境變數,並設定警告標誌
修訂版
與版本相同,但用於修訂版編號,檔案 = 檢查檔案而不是記憶體
全部
顯示完整資訊,
內部
檢查內部檔案,
Res
檢查駐留檔案。
示例 版本 kickstart 版本=39 修訂版=106


等待
格式 等待 時間/N SEC=SECS/S MIN=MINS/S UNTIL/K
目的 等待指定的時間段
引數
時間
時間段,以秒(秒)或分鐘(分鐘)為單位
直到
等待直到某個時間
示例 等待 直到 12:00


哪個
格式 哪個 檔案/A NORES/S RES/S ALL/S
目的 查詢檔案在命令路徑中的位置(參見路徑),並設定警告標誌。
引數
檔案
要查詢的檔案
NoRes
不搜尋駐留列表
Res
僅搜尋駐留列表
全部
搜尋完整路徑
示例 哪個 Multiview


為什麼
格式 為什麼
目的 顯示之前命令失敗的原因
示例 為什麼

其他 DOS 命令

[edit | edit source]
DMS
Format:
 DMS Read file[.DMS] [FROM dev:] [TEXT filetext] [CMODE mode] [LOW lowtrack] [HIGH hightrack] [NOVAL] [NOZERO] [ENCRYPT password]
 DMS Write file[.DMS],,, [TO dev:] [LOW lowtrack] [HIGH hightrack] [NOVAL] [NOTEXT] [NOPAUSE [DECRYPT password]
 DMS Repack file[.DMS] [TO dev:] [LOW lowtrack] [HIGH hightrack] [CMODE mode]
 DMS View file[.DMS],,, [FULL] DMS Text file[.DMS],,,
 DMS Test file[.DMS],,, DMS Help
Purpose:  To read, write or view Disk Masher disk images of floppy disks.
Example: DMS Write MyDisk.DMS FROM DF0:

Installer
Format:  Installer [SCRIPT] filename <[APPNAME] name> <[MINIUSER] level> <[DEFUSER] default> <[LOGFILE] 
 logname> <[LANGUAGE] language> <NOPRETEND> <NOLOG> <NOPRINT>
Purpose: To install an application via a installer script. Usually provided as a default tool for script 
 files in icon.
Example: Installer SCRIPT InstallApp APPNAME MyProgram LOGFILE DH0:MyProgram.log

LHA
Format:  LHA [-options] <command> <archive[.LZH|LHA]> [[homedir] <filespec...] [@file] [destination]
Purpose: To create, modify or list LHA or LZH files
Examples:
LHA a pictures.lha #?.jpg (archives all jpg files into pictures.lha)
LHA l pictures.lha        (lists all files in pictures.lha)
LHA x pictures.lha        (extracts all files from pictures.lha)

LZX
Format:  LZX [-options] <command> <archive> [<file> ...] [<destdir>]
Purpose: To create, modify or list LZX archive files.
Examples:
LZX a documents.lzx #?.doc (archives all doc files into documents.lzx)
LZX l documents.lzx        (lists all files in documents.lzx)
LZX x documents.lzx        (extracts all files from documents.lzx)

其他 DOS 資訊

[編輯 | 編輯原始碼]
Clear Screen
Example: Echo "*E[0;0H*E[J"
Purpose: Clears the screen. Uses printer commands to control text formatting in CLI, so *E is equivalent to ESC character.The command clear is normally defined using an Alias or an AmigaDOS script in S: folder.

Text in Italics
Example: Echo "*E[3mItalics*E[23m"
Purpose: *E[3m turns on italics and *E[23m turns off italics

Text in Bold
Example: Echo "*E[1mBold*E[22m"
Purpose: *E[1m turns on bold, and *E[22m turns off bold.

Underline Text
Example: Echo "*E[4mUnderline*E[24m"
Purpose: *E[4m turns on underline, and *E24m turns off underline.

Coloured Text
Example: Echo "*E[32mRed Text*E[0m"
Purpose: *E[nm where n=30-39 for foreground color or n=40-49 for background colour.
*E[0m resets to normal character set.

似乎 Amiga Shell 允許轉義序列以 0x9B 字元開頭,或者允許使用更傳統的 0x1B 字元(八進位制為 033)後跟 [ 字元。為了清晰起見,我將用 C 字串 \033[ 表示它。

AROS 不理解 \033[0m 序列,因此您需要使用另一個顏色序列來重置它(假設使用者沒有更改預設的 Shell 顏色)。結果是 \033[31;40m。為了安全起見,最好在它後面加上(在 AROS 中被忽略的)\033[0m 序列。

因此,我的最終高亮程式碼如下所示

printf("Before\033[32;43mDuring\033[31;40m\033[0mAfter\n");

或者,如果您用 E 編碼(像我一樣),則它就是這個

PrintF('Before\e[32;43mDuring\e[31;40m\e[0mAfter\n')

僅在 AROS 中存在的 DOS 命令

[編輯 | 編輯原始碼]
AddAudioModes
格式
目的
引數 Files/M Quiet/S Refresh/S Remove/S DblScan/S
示例


Beep
格式
目的
引數
示例


CheckMem
格式
目的
引數
示例


Delay
格式
目的
引數 Time/N Tick=Ticks/S
示例


DevList
格式 DevList
目的 列出正在執行的裝置 - 地址、版本、修訂版、opencnt、標誌、名稱
引數
示例 devlist


LibList
格式 LibList
目的 給出開啟的庫和 mui 的地址、版本、修訂版、opencnt、標誌、名稱
引數
示例 liblist


Reboot
格式 Reboot
目的 熱重啟機器 - 不起作用
引數
示例


ResList
格式 reslist
目的 列出資源 - 名稱和地址
引數
示例 reslist


Shutdown
格式 shutdown
目的 關閉計算機
引數
示例 不工作


TaskList
格式 tasklist
目的 列出正在執行的任務 - 地址、型別、優先順序、狀態、cpu、時間、堆疊、使用情況、名稱
引數
示例 tasklist

有沒有辦法一次解壓縮多個,比如 10 個壓縮存檔

list #?.zip lformat "unzip %N" >script
execute script

Resident >NIL: C:RequestChoice PURE
Resident >NIL: C:RequestFile PURE

; $VER: DMSMaker v1.0 (11.7.96) Richard Burke

lab Start
if EXISTS ENV:Choice
        delete ENV:Choice >NIL:
endif

if EXISTS ENV:Tst
        delete ENV:Tst >NIL:
endif

if EXISTS ENV:V
        delete ENV:V >NIL:
endif

if EXISTS ENV:Re
        delete ENV:Re >NIL:
endif

if EXISTS ENV:DMS
        delete ENV:DMS >NIL:
endif

if EXISTS ENV:De
        delete ENV:De >NIL:
endif

if EXISTS ENV:DeDev
        delete ENV:DeVol >NIL:
endif

if EXISTS ENV:Cr
        delete ENV:Cr >NIL:
endif

if EXISTS ENV:CrSv
        delete ENV:CrSv  >NIL:
endif

if EXISTS ENV:Mode
        delete ENV:Mode >NIL:
endif

if EXISTS ENV:Mode1
        delete ENV:Mode1 >NIL:
endif

which DMS all >ENV:DMS

RequestChoice >ENV:Choice "Welcome!" "Welcome to the DMSMaker! Choose an action" "Crunch" "Decrunch" "Repack" "View" "Test" "Quit"

if $Choice EQ 1
        lab Dev
        RequestFile >ENV:Cr DRAWERSONLY TITLE "Choose DEVICE to crunch" POSITIVE "Crunch" NEGATIVE "Return to menu"
                if WARN
                        skip Start BACK
                endif
                if NOT EXISTS $Cr
                        echo "DEVICE does not exist! Choose again!"
                        skip Dev BACK
                endif
        RequestChoice >ENV:Mode1 "Crunch Mode" "Choose degree of crunching" "Best" "None" "Heavy1" "Heavy2" "Return to menu"
                if WARN
                        skip Start BACK
                endif
                if $Mode1 EQ 1
                        echo "BEST" >ENV:Mode
                endif
                if $Mode1 EQ 2
                        echo "NONE" >ENV:Mode
                endif
                if $Mode1 EQ 3
                        echo "HEAVY1" >ENV:Mode
                endif
                if $Mode1 EQ 4
                        echo "HEAVY2" >ENV:Mode
                endif
        RequestFile >ENV:CrSv TITLE "Save crunched file as..." ACCEPTPATTERN "#?.dms" FILE ".dms" POSITIVE "Save" NEGATIVE "Return to menu"
                if WARN
                        skip Start BACK
                endif
        $DMS read $CrSv FROM $Cr CMODE $Mode
        echo "File crunched!"
endif

if $Choice EQ 2
        lab Dec
        RequestFile >ENV:De TITLE "Choose FILE to decrunch" ACCEPTPATTERN "#?.dms" POSITIVE "Decrunch" NEGATIVE "Return to menu"
                if WARN
                        skip Start BACK
                endif
                if NOT EXISTS $De
                        echo "FILE does not exist! Choose again!"
                        skip Dec BACK
                endif
        lab DecDev
        RequestFile >ENV:DeDev TITLE "Choose DEVICE to decrunch TO" DRAWERSONLY POSITIVE "Write" NEGATIVE "Return to menu"
                if WARN
                        skip Start BACK
                endif
                if NOT EXISTS $DeDev
                        echo "DEVICE does not exist! Choose again!"
                        skip DecDev BACK
                endif
        $DMS write $De TO $DeDev
        echo "File decrunched!"
endif

if $Choice EQ 3
        lab Rep
        RequestFile >ENV:Re TITLE "Choose FILE to repack" ACCEPTPATTERN "#?.dms" POSITIVE "Repack" NEGATIVE "Return to menu" FILE ".dms"
                if WARN
                        skip Start BACK
                endif
                if NOT EXISTS $Re
                        echo "File does not exist! Choose again!"
                        skip Rep BACK
                endif
        RequestChoice >ENV:Mode1 "Crunch Mode" "Choose degree of crunching" "Best" "None" "Heavy1" "Heavy2" "Return to menu"
                if WARN
                        skip Start BACK
                endif
                if $Mode1 EQ 1
                        echo "BEST" >ENV:Mode
                endif
                if $Mode1 EQ 2
                        echo "NONE" >ENV:Mode
                endif
                if $Mode1 EQ 3
                        echo "HEAVY1" >ENV:Mode
                endif
                if $Mode1 EQ 4
                        echo "HEAVY2" >ENV:Mode
                endif
        RequestFile >ENV:CrSv TITLE "Save repacked file as..." ACCEPTPATTERN "#?.dms" FILE ".dms" POSITIVE "Save" NEGATIVE "Return to menu"
                if WARN
                        skip Start BACK
                endif
        $DMS repack $Re TO $CrSv CMODE $Mode
        echo "File repacked!"
endif

if $Choice EQ 4
        lab View
        RequestFile >ENV:V TITLE "Choose DMS FILE to view" POSITIVE "View" NEGATIVE "Return to menu" ACCEPTPATTERN "#?.dms" FILE ".dms"
                if WARN
                        skip Start BACK
                endif
                if NOT EXISTS $V
                        echo "FILE does not exist! Choose again!"
                        skip View BACK
                endif
                $DMS view $V
endif

if $Choice EQ 5
        lab Test
        RequestFile >ENV:Tst TITLE "Choose FILE to test" ACCEPTPATTERN "#?.DMS" POSITIVE "Test" NEGATIVE "Return to menu" FILE ".dms"
                if WARN
                        skip Start BACK
                endif
                if NOT EXISTS $Tst
                        echo "FILE does not exist! Choose again!"
                        skip Test BACK
                endif
                $DMS test $Tst
endif

if $Choice EQ 0
        skip End
endif

skip Start BACK

lab End
quit


resident >nil: c:search PURE
resident >nil: c:requestfile PURE
resident >nil: c:requestchoice PURE
resident >nil: c:echo PURE
resident >nil: c:copy PURE
resident >nil: c:type PURE

; $VER: HappySearch v1.0 (25.4.97) Richard Burke

requestchoice >env:int "HappySearch" "HappySearch searches the specified device/drawer*nto see if any files have been infected with the*n'Happy New Year 96!' virus, and informs of any*ninfected files it finds. Such files will have the*nvirus name printed below them in the scanned file*nlisting." "Okay" "Quit"
if $int EQ 0
        quit
endif

lab beg
if exists env:mo
        delete >nil: env:mo
endif

if exists env:disp
        delete >nil: env:disp
endif

if exists env:dev
        delete >nil: env:dev
endif

if exists env:hap
        delete >nil: env:hap
endif

if exists env:sav1
        delete >nil: env:sav1
endif

if exists env:rec
        delete >nil: env:rec
endif

if exists env:sav
        delete >nil: env:sav
endif

if exists env:int
        delete >nil: env:int
endif

requestfile >env:dev TITLE "Choose drawer to search:" POSITIVE Search DRAWERSONLY
if warn
        quit
endif

requestchoice >env:disp "Save?" "Results will be printed to screen.*nSave results to file too?*n(This is recommended)" "Yes" "No"
if $disp EQ 1
        requestfile >env:sav TITLE "Location:" POSITIVE Save DRAWER RAM: FILE Happy.tmp
        echo $sav >env:sav1
endif

requestchoice >env:rec "Recurse?" "Search sub-directories recursively?" "Yes" "No"
if $rec EQ 1
        echo "Scanning files . . ."
        search $dev "Happy New Year 96!" ALL >env:hap
else
        echo "Scanning files . . ."
        search $dev "Happy New Year 96!" >env:hap
endif
echo "Files scanned:"
type env:hap
if $disp EQ 0
        delete >nil: env:hap
else
        copy >nil: env:hap $sav1
        echo "File listing saved as *e[33m$sav1*e[0m"
endif

requestchoice >env:mo "More?" "Scan another drawer?" "Yes" "No"
if $mo EQ 1
        skip beg back
endif
if exists env:mo
        delete >nil: env:mo
endif

if exists env:disp
        delete >nil: env:disp
endif

if exists env:dev
        delete >nil: env:dev
endif

if exists env:hap
        delete >nil: env:hap
endif

if exists env:sav1
        delete >nil: env:sav1
endif

if exists env:rec
        delete >nil: env:rec
endif

if exists env:sav
        delete >nil: env:sav
endif

if exists env:int
        delete >nil: env:int
endif

quit
華夏公益教科書