跳转到内容

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
华夏公益教科书