网易首页 > 网易号 > 正文 申请入驻

在 FreeDOS 中使用批处理文件 | Linux 中国

0
分享至

导读:编写你自己的简单程序来自动执行通常需要大量输入的任务的批处理文件,是一种极好的方法。           

本文字数:4277,阅读时长大约: 6分钟

https://linux.cn/article-14111-1.html
作者:Kevin O'brien
译者:郑

在 Linux 上,创建 shell 脚本 来自动执行重复的任务是很常见的。类似地,在开源版的旧式 DOS 操作系统 www.freedos.org 上,你可以创建一个包含数个 FreeDOS 命令的 批处理文件 。然后,你就可以运行你的批处理文件来按顺序执行每个命令。

你可以使用一个 ASCII 文本编辑器来创建批处理文件,诸如 FeeDOS 的 Edit 应用程序。在你创建一个批处理文件后,你可以使用一个文件名称加上扩展名 .bat 来保存它。文件名称应该是唯一的。如果你使用 FreeDOS 的一个命令的名称作为你自己的文件名称,那么可能将会执行 FreeDOS 的命令,而不会是你的批处理文件。

实际上,所有的内部的和外部的 FreeDOS 命令都可以在一个批处理文件中使用。在你创建一个批处理文件时,你其实就是在编写一个程序。FreeDOS 批处理文件可能没有结构化编程语言的功能,但是对于耗时短暂却重复乏味的任务来说,它是非常方便的。

注释你的代码

对于任何程序员来说,学习的第一个好习惯都应该是:在一个程序中放置注释来解释该代码正在做什么。这是一件非常容易完成的事情,但是你需要仔细,不要傻傻地让操作系统来执行你的注释。避免出现这种情况的方法是在一个注释行的开头处放置 REM(“remark” 的缩写) 。

FreeDOS 忽略以 REM 开头的代码行。但是任何查看源文件代码(即你在你的批处理文件中所编写的文本)的人都可以读取你的注释并理解它在做什么。这也是一种临时性禁用一个命令而不需要删除它的一种方法。只需要打开你的批处理文件来进行编辑,在你想要禁用行的开头处放置 REM ,并保存它。在你想要重新启用这个命令时,只需要打开文件来进行编辑和移除 REM 。这种技巧有时被称为 “注释掉” 一个命令。

开始设置

在你开始编写你自己的批处理文件前,我建议在 FreeDOS 中创建一个临时目录。这将会为你提供一个处理批处理文件的安全空间,不会意外地删除、移动,或重命名重要的系统文件或目录。在 FreeDOS 上,你可以使用 MD 命令来 opensource.com :

  1. C:\>MD TEMP

  2. C:\>CD TEMP

  3. C:\TEMP>

FreeDOS 的 ECHO 命令会控制当你运行一个批处理文件时在屏幕上显示的东西。例如,这里是一个简单是单行批处理文件:

  1. ECHO Hello world

如果你创建这个文件并运行它,你将看到在屏幕上显示的句子。从命令行中完成这项操作的最快的方法是:使用 COPY 命令来从你的键盘中(CON)获取输入,并将其放置到文件 TEST1.BAT 之中。接下来,按下组合键 Ctrl+Z 来停止复制过程,按下你键盘上的 ReturnEnter 按键来返回一个提示。

在你的临时目录中尝试创建这个文件为 TEST1.BAT ,接下来运行它:

  1. C:\TEMP>COPY CON TEST1.BAT

  2. CON => TEST1.BAT

  3. ECHO Hello world

  4. ^Z

  5. C:\TEMP>TEST1

  6. Hello world

当你想要显示一段文本时,这可能很有用。例如,在一个程序完成它的任务时,你可能会在你的屏幕上看到一条告诉你需要等待的消息,或者在一个网络环境中时,你可能会看到一条登录消息。

如果你想要显示一个空行怎么办?你可能会认为 ECHO 命令本身就可以达到目的,但是单独一个 ECHO 命令只会询问 FreeDOS 来响应 ECHO 是打开还是关闭:

  1. C:\TEMP>ECHO

  2. ECHO is on

获取一个空白行的方法是在 ECHO后紧接着使用一个 +符号:

  1. C:\TEMP>ECHO+

  2. C:\TEMP>

批处理文件变量

变量是一个存储你需要你的批处理文件临时记住的信息的位置。这是编程的一个重要的功能,因为你不能总是知道你的批处理文件需要使用什么样的数据。这里有一个用于演示的简单示例。

创建 TEST3.BAT

  1. @MD BACKUPS

  2. COPY %1 BACKUPS\%1

变量是使用百分比符号和随后的数字表示的,因此,这个批处理文件将在你的当前目录中创建一个 BACKUPS 子目录,然后将复制变量 %1BACKUPS 文件夹之中。这个变量是什么?当你运行批处理文件时,变量由你决定:

  1. C:\TEMP>TEST3 TEMP1.BAT

  2. TEST1.BAT => BACKUPS\TEST1.BAT

你的批处理文件已经复制 TEST1.BAT 到一个名称为 BACKUPS 的子目录,因为在你运行批处理文件时,你标识这个文件为一个参数。你的批处理文件将把 %1 替换为 TEST1.BAT

变量是按位置的。变量 %1 是你提供给命令的第一个参数,变量 %2 是第二个参数,以此类推。假设你创建一个批处理文件来列出一个目录的内容:

  1. DIR %1

尝试运行它:

  1. C:\TEMP>TEST4.BAT C:\HOME

  2. ARTICLES

  3. BIN

  4. CHEATSHEETS

  5. GAMES

  6. DND

这像预期一样的工作。但是下面这个却失败了:

  1. C:\TEMP>TEST4.BAT C:\HOME C:\DOCS

  2. ARTICLES

  3. BIN

  4. CHEATSHEETS

  5. GAMES

  6. DND

如果你尝试它,你将得到第一个参数(C:\HOME)的列表,而得不到第二个参数(C:\DOCS)的列表。这是因为你的批处理文件仅查找一个变量(%1),此外,DIR 命令也仅能获取一个目录。

此外,当你运行一个批处理文件时,你也不需要为其具体指定扩展名 —— 除非你运气相当不好地为批处理文件选取了一个与 FreeDOS 外部命令或类似命令相同的名称。当 FreeDOS 执行命令时,它按下面的顺序执行:

1. 内部命令

2. 带有 *.COM 扩展名的外部命令

3. 带有 *.EXE 扩展名的外部命令

4. 批处理文件

多个参数

好的,选择重新编写 TEST4.BAT 文件来使一个命令可以获取两个参数,以便你可以看到这是如何工作的。首先,使用 EDIT 应用程序来创建一个简单的名称为 FILE1.TXT 的文本文件。在其中放置一段某种类型(例如,“Hello world”)的语句,并在你的 TEMP 工作目录中保存文件。

接下来,使用 EDIT 来更改你的 TEST4.BAT 文件:

  1. COPY %1 %2

  2. DIR

保存它,然后执行命令:

  1. C:\TEMP\>TEST4 FILE1.TXT FILE2.TXT

在运行你的批处理文件时,你会看一个你的 TEMP 目录的目录列表。在列出的文件之中,你有 FILE1.TXTFILE2.TXT ,它们是由你的批处理文件所创建的。

嵌套批处理文件

批处理文件的另一个功能是能够 “嵌套” ,这意味着一个批处理文件可以在另外一个批处理文件中被调用和运行。为查看这是如何工作的,从一对简单的批处理文件开始:

第一个文件被称为 NBATCH1.BAT

  1. @ECHO OFF

  2. ECHO Hello

  3. CALL NBATCH2.BAT

  4. ECHO world

第一行 (@ECHO OFF) 轻轻地告诉批处理文件在你运行它时仅显示命令 (而不是命令本身) 的输出。你可能会在前面的示例中注意到这里有很多关于批处理文件正在做什么的反馈;在这种情况下,你正在允许你的批处理文件仅显示结果。

第二个批处理被称为 NBATCH2.BAT :

  1. echo from FreeDOS

使用 EDIT 来创建这两个文件,并在你的 TEMP 子目录中保存它们。运行 NBATCH1.BAT 来查看会发生什么:

  1. C:\TEMP\>NBATCH1.BAT

  2. Hello

  3. from FreeDOS

  4. world

你的第二个批处理文件将在第一个批处理文件之中通过 CALL 命令来执行,它将提供在你 “Hello world” 信息中间的字符串 “from FreeDOS” 。

FreeDOS 脚本

编写你自己的简单程序来自动执行通常需要大量输入的任务的批处理文件,是一种极好的方法。你使用的 FreeDOS 越多, 你将越熟悉它的命令,在你熟知命令后,在一个批处理文件中列出它们仅是一件使你的 FreeDOS 系统让你生活轻松的事情。尝试一下!

via:

作者: 选题: 译者:[robsean]]() 校对:

本文由 原创编译, 荣誉推出

欢迎遵照 CC-BY-NC-SA 协议规定转载,

如需转载,请在文章下留言 “ 转载:公众号名称”,

我们将为您添加白名单,授权“ 转载文章时可以修改”。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
iPhone卡贴机将成历史!美国拟新规:运营商须在激活后60天内解锁

iPhone卡贴机将成历史!美国拟新规:运营商须在激活后60天内解锁

数码盖饭官方号
2024-06-30 11:53:33
惨烈,上半年股民亏惨了……

惨烈,上半年股民亏惨了……

杨国英观察
2024-06-30 21:57:32
莫名其妙的操作!奇才才刚刚签下了他却又立刻放弃了他?

莫名其妙的操作!奇才才刚刚签下了他却又立刻放弃了他?

稻谷与小麦
2024-06-30 23:11:19
震惊!网传京东再次开启裁员模式?直接关闭权限,发放待岗通知…

震惊!网传京东再次开启裁员模式?直接关闭权限,发放待岗通知…

火山诗话
2024-06-29 05:58:35
林葳被郭士强封杀细节!如果是杜锋,估计会更狠吧?

林葳被郭士强封杀细节!如果是杜锋,估计会更狠吧?

体坛狗哥
2024-06-30 11:47:18
一代传奇的落幕——北京长城饭店停业

一代传奇的落幕——北京长城饭店停业

别人都叫我阿腈
2024-06-30 18:10:33
离谱!广州“神奇”公司多益网络公开挑战劳动法?

离谱!广州“神奇”公司多益网络公开挑战劳动法?

闲醉山人
2024-06-30 15:56:40
美媒:拜登或被强制退出总统选举

美媒:拜登或被强制退出总统选举

阿离家居
2024-06-30 18:35:10
中国GDP已经滑落到美国的59%了,这是怎么了?

中国GDP已经滑落到美国的59%了,这是怎么了?

老道闲聊
2024-05-07 11:54:26
传闻乌克兰F-16战机已经进行首次打击,数架F-16战机已经到位

传闻乌克兰F-16战机已经进行首次打击,数架F-16战机已经到位

山河路口
2024-06-29 21:32:59
杨幂被偷拍私处,照片一夜传遍全网,网友炸了:不要低估人性的恶…

杨幂被偷拍私处,照片一夜传遍全网,网友炸了:不要低估人性的恶…

二胡的岁月如歌
2024-06-30 18:10:18
曾发表“幸福生活是最大的人权”的武大教授张万洪逝世,享年49岁

曾发表“幸福生活是最大的人权”的武大教授张万洪逝世,享年49岁

阿蒙聊教育
2024-06-29 22:14:58
哈佛大学研究发现:促进儿童大脑发育的“最佳方法”,并不是阅读

哈佛大学研究发现:促进儿童大脑发育的“最佳方法”,并不是阅读

大果小果妈妈
2024-06-23 08:58:19
新型卖淫方式,让人预想不到,但却真实存在!

新型卖淫方式,让人预想不到,但却真实存在!

雪影的情感
2023-11-18 11:51:16
女篮输澳大利亚夺亚军!张子宇42+14,与其各将辣眼,8号纯战犯

女篮输澳大利亚夺亚军!张子宇42+14,与其各将辣眼,8号纯战犯

篮球资讯达人
2024-06-30 19:41:24
专家警告:若卷入中美冲突会亡国!

专家警告:若卷入中美冲突会亡国!

雪中风车
2024-06-30 16:48:29
教育部同意!两所高校,官宣合并

教育部同意!两所高校,官宣合并

创作者_1647241717443
2024-06-28 20:43:26
陈思诚携女友匈牙利游玩!相差21岁似老夫老妻,背影超像佟丽娅

陈思诚携女友匈牙利游玩!相差21岁似老夫老妻,背影超像佟丽娅

裕丰娱间说
2024-06-30 13:24:23
2024年云南省高考文理科状元:理科状元731分,文科状元703分!

2024年云南省高考文理科状元:理科状元731分,文科状元703分!

天气观察站
2024-07-01 06:02:47
奥斯卡:全队已经尽力了比分确实很难接受,想向球迷说不要放弃

奥斯卡:全队已经尽力了比分确实很难接受,想向球迷说不要放弃

直播吧
2024-06-30 21:53:16
2024-07-01 08:24:49
Linux
Linux
Linux 中国开源社区
8016文章数 73124关注度
往期回顾 全部

科技要闻

河南火箭坠落爆炸?商业航天公司回应了

头条要闻

俄空天军屡遭乌无人机袭击 美媒担心中国未来也用这招

头条要闻

俄空天军屡遭乌无人机袭击 美媒担心中国未来也用这招

体育要闻

欧洲杯8强已定4席:英格兰战瑞士 西德PK

娱乐要闻

白玉兰明星反应精彩 胡歌获奖唐嫣激动

财经要闻

副行长坠楼 西安银行业绩到底怎么样?

汽车要闻

小鹏MONA M03 7月3日首发 15万紧凑级

态度原创

教育
旅游
本地
公开课
军事航空

教育要闻

小朋友作业还没写完,家长本来想辅导,结果把自己也给难倒了

旅游要闻

突发!上海出发豪华邮轮,男子翻越栏杆后落海

本地新闻

冷知识:东北雪糕才是最早的网红雪糕

公开课

连中三元是哪三元?

军事要闻

卫星影像显示山东舰抵菲附近海域

无障碍浏览 进入关怀版