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

在 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.

相关推荐
热点推荐
北约宣战!俄罗斯确认首个打击对象,特朗普威胁取消对乌军援

北约宣战!俄罗斯确认首个打击对象,特朗普威胁取消对乌军援

纾瑶
2024-11-28 09:37:14
女首富,死刑!交出800亿,免死!

女首富,死刑!交出800亿,免死!

中国基金报
2024-12-01 08:05:31
“买得起用不起”的6种电器,本以为很实用,没想到太烧钱!

“买得起用不起”的6种电器,本以为很实用,没想到太烧钱!

装修秀
2024-12-01 11:20:03
为何中国有那么多人患糖尿病?这是我见过很完美的回答!

为何中国有那么多人患糖尿病?这是我见过很完美的回答!

小啾咪侃侃史
2024-11-03 07:05:15
范冰冰饭局照流出,喝酒还吐舌头,素颜温婉大方,和妆后判若两人

范冰冰饭局照流出,喝酒还吐舌头,素颜温婉大方,和妆后判若两人

南城无双
2024-10-25 23:54:18
女网红太没底线,穿旗袍短裙用脚做饼,糟蹋粮食还故意走光

女网红太没底线,穿旗袍短裙用脚做饼,糟蹋粮食还故意走光

南城无双
2024-12-02 02:06:40
军嫂拉横幅举报处长性骚扰,画面流出,过程披露,一细节信息量大

军嫂拉横幅举报处长性骚扰,画面流出,过程披露,一细节信息量大

博士观察
2024-11-30 23:15:57
回购!回购!利好来了

回购!回购!利好来了

中国基金报
2024-12-01 23:15:28
巴萨125周年海报惹众怒:17岁亚马尔并排梅西!哈维被冷落+无莱万

巴萨125周年海报惹众怒:17岁亚马尔并排梅西!哈维被冷落+无莱万

我爱英超
2024-11-30 21:13:06
风韵佳人241

风韵佳人241

童童聊娱乐啊
2024-11-30 20:14:46
最新!中方紧急松口?中菲罕见达成一致,仁爱礁迎来新的转机

最新!中方紧急松口?中菲罕见达成一致,仁爱礁迎来新的转机

军武亮剑
2024-11-28 14:41:14
江珊,与靳东相恋5年终是一场空,52岁牵手硬汉田小洁再获幸福

江珊,与靳东相恋5年终是一场空,52岁牵手硬汉田小洁再获幸福

柴叔带你看电影
2024-12-01 04:27:29
气死人!辽宁,一老板发工资被银行拒绝取钱,必须先联系警方,民警到后让男子证明钱是合法的!

气死人!辽宁,一老板发工资被银行拒绝取钱,必须先联系警方,民警到后让男子证明钱是合法的!

读史
2024-12-01 07:08:37
研究发现:每天都吃苹果的人,用不了多久,身体会出现这些变化

研究发现:每天都吃苹果的人,用不了多久,身体会出现这些变化

爆炸营养彭鑫蕊
2024-11-28 16:33:25
男人的福音来了!抗ED凝胶上市,10分钟起效,比小蓝片还神?

男人的福音来了!抗ED凝胶上市,10分钟起效,比小蓝片还神?

水皮M0RE
2024-12-01 18:32:46
国际刑事法院,扯了一个大蛋

国际刑事法院,扯了一个大蛋

智慧天气通
2024-11-30 18:56:32
善恶终有报!63岁在美国捡垃圾的吕丽萍,已经活成了一个“笑话”

善恶终有报!63岁在美国捡垃圾的吕丽萍,已经活成了一个“笑话”

华人星光
2024-08-30 16:53:59
120元/月!明起,杭州居民可集中申请!

120元/月!明起,杭州居民可集中申请!

杭州本地搜
2024-12-01 10:32:36
菲利宾村民分食海龟致3人死,31人送医,这也有人吃?

菲利宾村民分食海龟致3人死,31人送医,这也有人吃?

九方鱼论
2024-12-02 01:11:14
徐子尧缺席厦门演唱会后,周煜骐下一场会喊谁?刀郎回复让人笑翻

徐子尧缺席厦门演唱会后,周煜骐下一场会喊谁?刀郎回复让人笑翻

娱最资讯
2024-12-01 19:55:55
2024-12-02 04:35:00
Linux
Linux
Linux 中国开源社区
8016文章数 73120关注度
往期回顾 全部

科技要闻

我国首个商业航天发射场首发成功

头条要闻

湖南省委原常委落马后 其妻追讨5000万巨额债务引关注

头条要闻

湖南省委原常委落马后 其妻追讨5000万巨额债务引关注

体育要闻

勇士四连败,到底是谁的错?

娱乐要闻

黄晓明姥姥去世,祖孙俩手牵手好温馨

财经要闻

女首富,死刑!交出800亿,免死!

汽车要闻

科技是中国豪车梦的支点 腾势Z9走心试驾体验

态度原创

教育
亲子
时尚
旅游
军事航空

教育要闻

2024第40届数学竞赛决赛国集获奖名单公布!江苏 2人入选

亲子要闻

加大加厚折叠儿童泡澡桶,家里有娃的放心入

今冬流行“不露腿”穿搭!舒适还保暖,巨洋气!

旅游要闻

+现场|黄浦江首艘演艺主题游船开航

军事要闻

泽连斯基开出停火条件 俄方回应

无障碍浏览 进入关怀版