环境变量在几乎所有的命令行环境中都是一个很有用的功能。 一些变量允许你控制命令行的行为或功能,另一些变量允许你简单地存储稍后可能需要引用的数据。 环境变量也在 FreeDOS 中使用。
Linux 上的变量
在 Linux 上,你可能已经熟悉了几个重要的环境变量。 在 Linux 的 Bash shell 中, PATH
变量指定了 shell 可以在哪里找到程序和命令。 例如,在我的 Linux 系统上,我拥有以下 PATH
值:
bash$ echo $PATH
/home/jhall/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin
这意味着当我输入像 cat
这样的命令名称时,Bash 会依次检查我的 PATH
变量中列出的每个目录:
/home/jhall/bin
/usr/lib64/ccache
/usr/local/bin
/usr/local/sbin
/usr/bin
/usr/sbin
在我的例子中,cat
命令位于 /usr/bin
目录中,因此该命令的完整路径是 /usr/bin/cat
。
要在 Linux 上设置环境变量,你需要输入变量名,然后输入等号 (=
),再输入要存储在变量中的值。 要稍后使用 Bash 引用该值,请在变量名前面输入美元符号 ($
)。
bash$ var=Hello
bash$ echo $var
Hello
FreeDOS 上的变量
在 FreeDOS 上,环境变量具有类似的功能。 一些变量控制 DOS 系统的行为,另一些变量可用于存储一些临时值。
要在 FreeDOS 上设置环境变量,你需要使用 SET
关键字。 FreeDOS 是不区分大小写的,因此你可以使用大写或小写字母键入。 然后,像在 Linux 上一样设置变量,使用变量名、等号 (=
) 和要存储的值。
但是,在 FreeDOS 中引用或扩展环境变量的值与在 Linux 上的方式完全不同。 你不能使用美元符号 ($
) 来引用 FreeDOS 中的变量。 相反,你需要用百分号 (%
) 将变量的名称括起来。

图片来源:Jim Hall, CC-BY SA 4.0
重要的是在名称前后都使用百分号,因为 FreeDOS 就是通过这种方式知道变量名从哪里开始和结束的。 这非常有用,因为它允许你在立即将其他文本附加(或前置)到值的同时引用变量的值。 让我通过设置一个名为 reply
的新变量,其值为 yes
,然后用文本 "11" 在它前面和 "22" 在它后面来引用该值来演示这一点:

图片来源:Jim Hall, CC-BY SA 4.0
因为 FreeDOS 不区分大小写,你也可以对变量名以及 SET
关键字使用大写或小写字母。 但是,变量的值将使用你在命令行上键入的字母大小写。
最后,你可以看到 FreeDOS 中当前定义的所有环境变量的列表。 如果没有任何参数,SET
关键字将显示所有变量,因此你可以一目了然地看到所有内容:

图片来源:Jim Hall, CC-BY SA 4.0
环境变量是命令行环境中常用的基本要素,这同样适用于 FreeDOS。 你可以设置自己的变量来满足自己的需求,但请小心更改 FreeDOS 使用的某些变量。 这些可能会改变你正在运行的 FreeDOS 系统的行为。
- DOSDIR: FreeDOS 安装目录的位置,通常是
C:\FDOS
- COMSPEC: FreeDOS shell 的当前实例,通常是
C:\COMMAND.COM
或%DOSDIR%\BIN\COMMAND.COM
- LANG: 用户的首选语言
- NLSPATH: 系统语言文件的位置,通常是
%DOSDIR%\NLS
- TZ: 系统的时区
- PATH: FreeDOS 可以在其中找到要运行的程序的目录列表,例如
%DOSDIR%\BIN
- HELPPATH: 系统文档文件的位置,通常是
%DOSDIR%\HELP
- TEMP: 一个临时目录,FreeDOS 将每个命令的输出存储到其中,因为它在命令行上的程序之间“管道”数据。
- DIRCMD: 一个控制
DIR
命令如何显示文件和目录的变量,通常设置为/OGNE
以按分组 (G) 目录,然后按名称 (N) 然后按扩展名 (E) 对内容进行排序 (O)。
如果你不小心更改了任何 FreeDOS“内部”变量,你可能会阻止 FreeDOS 的某些部分正常工作。 在这种情况下,只需重新启动你的计算机,FreeDOS 将从系统默认值重置变量。
评论已关闭。