2021年12月

美国一些机构在使用 AI 招聘工具来招人

去年,美国食药管理局的下属机构需要快速填补 900 多个职位空缺,因而决定采购 HireVue 平台的服务来完成此任务。HireVue 是一个在线平台,允许雇主审查异步录制的视频面试,并让应聘者玩视频游戏作为其申请过程的一部分。平台还提供了各种人工智能功能,对候选人进行自动评分。它甚至还提供过面部分析,以预测求职者是否适合一份公开工作,但是后来鉴于 AI 的面部分析存在一些偏见,因而下线了该功能。

老王点评:AI 用于招聘和人员管理肯定是趋势,但是过度滥用可能带来的问题更大。

美国白宫和软件行业讨论改善开源安全

据称,在流行的 Log4j 漏洞被披露之后,美国白宫官员正在 邀请 主要软件公司和开发商与他们合作,以提高开源软件的安全性。几十个开源软件项目已经成为全球商业的重要组成部分,并且大多由志愿者维护。美国国家安全顾问认为,开源软件加快了创新的步伐,……但它被广泛使用而且是由志愿者维护的这一事实构成了关键的国家安全问题。美国政府的高级官员说 Log4j 漏洞是她职业生涯中见过的最糟糕的漏洞。

老王点评:开源软件已经成为主流基础设施,但是其暴露出来的问题也是开源软件所赖之生存的土壤,那么,究竟如何做才能既保持开源软件的活力,又能承担世界主流的责任呢?

大公司的精英们放弃百万年薪投奔新的“一生机会”

谷歌、亚马逊、苹果和其他大型科技公司的高管和工程师们放弃数百万美元的年薪,去追逐他们认为是“一辈子就一次的机会”。他们认为,下一个大事件就是加密货币,这包括比特币等数字货币和依靠区块链的 NFT 等产品。这些科技行业的精英们认为他们看到了历史上的相似之处,即个人电脑和互联网也曾经被嘲笑,但却颠覆了现状,铸造了新一代的亿万富翁。他们认为,加密货币可以通过创造一个不受少数公司控制的、更加分散的互联网来改变世界。虽然自 2009 年比特币出现以来,这种可能性就一直存在,但像 NFT 这样的加密货币产品直到今年才突破了主流。

老王点评:究竟是一种虚妄的泡沫还是变革前夜,无需争论,时间会告诉一切。

你可能已经注意到,当你在 GNOME 菜单/活动区搜索某样东西时,它也会显示名称与搜索词相匹配的文件,以及已安装的应用。

Search in GNOME activities shows installed applications and matching files

这是个很方便的功能。如果你记得文件名,甚至是它的一部分,你可以很容易地搜索到它,只需按下 Super 键(Windows 键)并输入文件名就可以打开它。

但是,围绕这个搜索功能,有一些你可能不知道或从未关心过的小问题。

在这篇文章中,我将分享你如何控制 GNOME 搜索功能,从搜索选项中添加或隐藏文件夹,以及完全禁用它。

注意:这专门针对使用 GNOME 的发行版。请 确认你使用的是哪种桌面环境,确保是 GNOME。

文件搜索的默认位置

GNOME 的搜索功能使用了一个叫做 Tracker Miner FS 的工具。请不要被 “tracker” 和 “miner” 这样的术语吓到。它不是在监视你,也不是在你的系统上挖掘加密货币。它的基本功能是作为一个搜索引擎和数据库,为你提供即时搜索结果。

默认情况下,文件索引发生在元文件夹,如文档、音乐、图片和视频目录及其子目录。主页和下载文件夹中的文件也会被索引,但不包括其子目录中的文件。

Default locations for file search

如果你在你的主文件夹中创建了一些新的目录,这些文件将不会被索引。

然而,最近访问的文件也会被自动编入索引。如果你最近打开了一个文件,它将被添加到 “最近的文件” 中,并将出现在搜索结果中,而不管它在什么地方。

如果你还不知道的话,你可以在文件管理器中看到你最近访问的文件:

Accessing recent files in GNOME file manager

在搜索结果中添加一个文件夹的内容

假设你在你的主目录中为编码项目创建了一个文件夹。这些文件不会被索引,也不会出现在搜索结果中(除非你通过双击打开了一个文件,并且它被添加到最近的文件中)。

要在搜索结果中添加自定义文件夹中的文件,你可以将该文件夹添加到搜索位置。

通过在菜单/活动区搜索打开 “设置” 应用。

Search for settings application

从左侧边栏进入 “搜索” 选项,点击顶部的“搜索位置”选项。在弹出的窗口中,进入 “其他” 标签,点击 “+” 符号。它将打开文件浏览器,你可以添加你想要的文件夹。

Adding a custom folder content to search

如果你在刚刚添加的文件夹中搜索一个文件名进行测试,你现在应该在搜索结果中看到它。它应该是即时的,但如果不是,请尝试注销或重启系统。

从搜索结果中隐藏一个文件夹

如果你不希望某个特定文件夹的文件出现在搜索结果中,你可以隐藏它。

如果你不希望在搜索中出现图片、文档、视频等元文件夹的内容,你可以从搜索位置设置中禁用它。

Disable meta folders from the search

如果你只想让文档下的某个文件夹的内容不出现在搜索结果中,你只需要在该文件夹中创建一个名为 .nomedia 的新文件。你也可以将该文件命名为 .git.trackerignore.hg

Hide specific folder from search results by creating file named .nomedia or .hg or .git

如果你在鼠标右键中没有看到创建新文件的选项,你必须做一些调整来增加 在右键上下文菜单中创建新文件选项。还要注意的是,任何名称中以 . 开头的文件都会被隐藏起来,不能被正常查看。要 切换显示隐藏文件,按 Ctrl+H 键。

这种隐藏可能不会立即生效,因为该文件可能已经被索引了。你可能必须注销或重启才能看到效果。

如果你手动访问一个文件,它将被添加到最近的文件中,并且会出现在搜索结果中,尽管文件夹中的文件被忽略了。

你可以从 “设置 -> 隐私 -> 文件历史 & 垃圾箱” 删除最近的文件历史或完全禁用它(如果你想的话)。不过我认为没有必要,所以在这里你自己决定吧。

Clear or disable file access history in GNOME

禁用所有文件的搜索结果

如果你不希望任何文件出现在搜索结果中,你可以在搜索设置中完全禁用对文件的搜索。

Disable search results for all files

你应该通过点击顶部的搜索切换按钮完全禁用搜索功能,它可能会干扰 GNOME 桌面环境的正常功能。

关于它的更多细节可以在 [项目主页] 中找到。

总结

这里的 讨论的是文件搜索。GNOME 桌面也可以在日历、字符映射和其他一些程序中进行搜索。你可以禁用或启用可用的搜索选项,但我们这篇不针对这些。

我希望你觉得这个快速提示对 定制你的 GNOME 体验 有帮助。如果你知道其他一些你想让别人知道的技巧,请在评论中与我们分享。


via: https://itsfoss.com/control-gnome-file-search/

作者:Abhishek Prakash 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Fountain markdown 技术只需要一个纯文本编辑器,如 Atom、Kate、Gedit 或类似的编辑器,它可以导出一个正确格式的 HTML 或 PDF 剧本。

 title=

剧本是一部电影的蓝图,过去它是在打字机上撰写的。你买台打字机就可以写剧本,可以写好多好多剧本。而现在没人用打字机写剧本了,因为打字机不再流行。

不过,令人费解的是,随着写作技术变得 “越好”,写剧本就越难。在剧本领域有严格的格式化规则,以帮助电影拍摄中的助理导演(AD)估计每个场景需要拍摄多长时间。你可能认为电脑会比在打字机上的完全手工过程更容易做到。然而,流行的计算机却用昂贵的软件来限制作家,这些软件已经嵌入了好莱坞文化。如果你没有合适的软件,你就会被告知,你永远不可能成为一个正式的编剧。

不过,所有这些都随着开源软件的出现而改变,写剧本的最简单方法之一就是根本不使用特殊的软件。Fountain markdown 技术只需要一个纯文本编辑器,如 AtomKateGedit,或类似的,它可以导出一个正确格式的 HTML 或 PDF 剧本。

安装 Fountain

Fountain 不需要安装,因为它不是软件;它是一套你在写作时使用的规则。你在写作时已经遵循了一些规则,比如你把句子的第一个字母大写,用句号来结束每句话,等等。当你用 Fountain 写作时,只需要添加一些专门针对剧本的新规则。

片段

在剧本中,每个场景都由一行大写字母划定,以 INT.EXT. 开头,然后是一个地点、一个破折号,以及一天中的时间。这些说明被称为 “片段”。方便的是,这也是 Fountain 的规则,所以不用记住什么新的东西就可以创建一个片段。

EXT. CASTLE COURTYARD - DAY

动作

当演员被要求执行一个特定的动作时,剧本中就会包含动作文本。这是正常的普通文本,完全按照你在书中写的文字来写。所有正常的规则都适用,所以对动作文本不用特别记什么规则。

A wizard wanders out of a great stone door. She approaches the center of the courtyard and pauses. Something's caught her eye.

It's a book. She leans down and picks it up.

对话

剧本中的对话格式是从左右边距缩进的。对于普通观众来说,它可能看起来是居中的,但实际上它是左对齐的。采用这种格式是为了帮助演员定位他们的台词,并使得剧本给口语对话留出更多的空间,因为在电影中,口语对话往往占据了大部分的时间。

在 Fountain 中,对话的规则是用大写字母写出说话的角色的名字。然后在下一行,正常写出对话内容。

WIZARD

I can sense your power. Grep? Sed? What strange terms!

当你导出你的剧本时,对话会被调整为适当的格式。

转场

现在这种做法已经不流行了,但传统上,在剧本中会有一些特殊的转场迹象,因为在很久以前,一些转场是要花很多钱的。今天,你仍然可以在剧本中看到转场,但它往往更多的是作为一组场景(或者,经典的整个电影 淡出 FADE OUT. )的一种标点符号,而不是对编辑的实际指示。

要在 Fountain 中创建一个过渡,在你的文本前加上大于号(>)。

>ANGLE ON:

The book's title page. It reads "Introduction to Linux."

>FADE OUT.

更多的规则

你可以在你的剧本中使用许多其他的 Markdown 约定,比如用星号来斜体、加粗和给文字加下划线。在 Fountain 中还有更多的规则来处理边缘情况和风格上的例外,但这四条规则在大多数情况下是你所需要的。

不过,Fountain 的简单性表明,一百年前的剧本格式设计得多么好。它有一个标准的结构,使人的眼睛很容易解析,这种可预测性也能很好地转化为计算机的解析。

输出和渲染

一旦你写完了,你就可以使用渲染程序将你的剧本导出为适当的格式。有 几个渲染器可用,但我最喜欢的是 Atom 编辑器。要配置 Atom 以适当的格式显示 Fountain 预览文件,并在完成后将其导出为 PDF,请进入“编辑” 菜单,选择 “偏好”,并点击左侧面板中的 “安装” 链接。在搜索栏中,输入 “fountain” 来安装由开发者 superlou 发布的 Fountain 插件。

 title=

在安装时,你会被提示同意安装它的一些依赖项。一旦安装完毕,你可以进入 “软件包” 菜单,选择 “Fountain”,然后查看你的剧本预览或导出 PDF 版本。

Emacs 也有一个 Fountain 模式 ,它还可以在你输入时执行一些基本的格式化。

 title=

无论你使用什么文本编辑器,你总是可以使用专门的应用程序来渲染你的剧本。有一个叫 Screenplain 的 Python 模块我觉得很好用。要安装它,请在终端键入以下内容:

$ python3 -m pip install 'screenplain[PDF]' --user

这样将一个剧本渲染成 PDF:

$ screenplain --format pdf myscreenplay.fountain > script.pdf

 title=

开源的电影剧本

Fountain 是方便的。你可以撰写你的剧本,而不需要特别复杂的应用程序。

Fountain 是省钱的。你可以撰写你的剧本而不需要昂贵的软件。

Fountain 是灵活的。你可以在你用来写作的应用程序中进行创作。

Fountain 是适宜保存的。你不会因为一个应用程序过时了,或者没有商业支持了,或者因为你买不起而不能访问你的作品。

使用 Fountain 有很多很好的理由,但最重要的一点是它能帮助你专注于创作。如果你心中酝酿了一部电影,就用 Fountain 来写。这是通向可能是一个非常令人兴奋的旅程的第一步。


via: https://opensource.com/article/21/12/linux-fountain

作者:Seth Kenlon 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

开源 2D 绘图软件 Krita 5.0 发布

Krita 发布了 5.0,带来了 大量更新,但与之前的 4.x 和 3.x 版本的文件存在部分不兼容。主要更新包括:修改了它对画笔/渐变/调色板的处理,所以它现在更快,使用的内存少得多,而且更稳定。Krita 5.0 还对渐变进行了改进,重写了涂抹笔刷引擎,对动画系统进行了大修,现在有了一个内置的故事板编辑器,一个可以将绘画过程制成视频的录像机等等。

老王点评:这是 Linux 上引以为傲的绘图应用之一,虽然它也支持 Linux 之外的操作系统。

systemd 发布重大更新版本 250

systemd 250 是一个重大的版本,带来了非常多的 更新改进。其中一些我感兴趣的地方有:

  • 支持加密和认证的凭证,可以是存储在 /var 的密钥,也可以是系统上的 TPM2 芯片,当服务启动时,凭证会被自动解密。
  • 支持长按系统上的电源、重启或暂停键,并可以对其行为进行设置。
  • 可以限制服务能访问的文件系统和网络接口。
  • /dev 默认的最大节点数从 64k 提高到了 1M;/tmp 默认的最大节点数从 400k 提高到 1M。
  • 改进对各种 TPM 2.0 模块的支持。
  • 对 LoongArch 架构的初步支持。
老王点评:不管你喜欢不喜欢,systemd 现在已经成为 Linux 上的初始化系统的标准。

暴露了客户源代码的 Azure 漏洞已经存在 4 年

该漏洞 至少从 2017 年 9 月起就暴露了他们 Azure Web 应用的源代码。该漏洞存在于 Azure 云的一项允许客户从源代码库中部署网站和 Web 应用的功能中。通过这种方法部署的所有 PHP、Node、Ruby 和 Python 应用程序都受到影响。而且只有部署在基于 Linux 的 Azure 服务器上的应用程序受到影响,但不包括那些托管在 Windows 服务器系统上的应用程序。而最危险的暴露情况是,暴露的源代码包含一个 .git 配置文件,该文件本身包含其他客户系统的密码和访问令牌,如数据库和 API。

老王点评:如果你是相关用户,请尽快处置。

林林总总的 Linux 发行版可以根据它们的特点、功能、预期用户群等分为不同的类别。在这篇文章中,我将列出一些最好的滚动发布的 Linux 发行版。

你知道什么是 滚动发布的发行版 吗?这些发行版不会等待 6 个月或更长时间才发布一个新的版本,提供给你更新的 Linux 内核、桌面环境和其他主要软件组件。它们会在这些组件发布后很快就进行更新。你不必将你的发行版从一个主要版本升级到下一个版本,因为你的发行版会定期得到升级。

现在你已经知道了,让我们来看看一些最好的滚动发布的 Linux 发行版。

你可以在桌面上使用的最佳滚动发行版

是的,这个列表主要是针对桌面用户。这里列出的一些发行版可能有服务器版本,但这不是这里的重点。

请注意,这并不是一个排名表。

1、openSUSE Tumbleweed

OpenSUSE Tumbleweed

老派的 openSUSE 多年来一直按部就班地顺着版本号发布他们的系统。但在几年前,他们决定改变他们的产品,创建了 openSUSE Leap 和 Tumbleweed

openSUSE Leap 采用的是版本式发布,每隔几年就会有一个新的版本,而 Tumbleweed 则是滚动式发布,新的软件在发布后不久就会出现在这个系统中。

openSUSE Tumbleweed 对于那些想留在红帽 RPM 阵营的人来说是一个很好的选择。openSUSE 有多样化的生态系统,它有一个巨大的软件库,Zypper 和 YaST 为你的软件包管理提供了很多选择。

2、Arch Linux

Arch Linux

毋庸置疑,Arch Linux 是最流行的滚动发布版本。它几乎就是滚动发布的同义词。

Arch Linux 在 Linux 用户中具有崇高地位的原因有很多。我认为这更多是与 安装 Arch Linux 后的成就感有关,因为即使是安装程序,它都很别人不一样。

Arch 在其软件库中正式提供了一大批软件。而 AUR 则通过社区的努力,几乎使所有其他的 Linux 软件都可以使用

如果你对 Linux 有一定的经验,想挑战自己的水平,这是一个不错的选择。

3、Manjaro Linux

Manjaro Linux

Manjaro 基本上是免除了所有麻烦的 Arch Linux。

它是基于 Arch Linux 的,所以它具有 Arch Linux 的大部分优点。你可以得到 Pacman 和 AUR 的滚动发布模式。同时,Manjaro 有图形化的安装程序、基于 GUI 的软件包管理器和其他图形化工具来改善你的桌面体验。

Manjaro 更容易安装,也更容易使用。对于那些想舒适地呆在 Arch 领域的人来说是个不错的选择。

注意: 还有 许多其他基于 Arch Linux 的优秀发行版,但我无法将其列入此列表中。如果你愿意,你可以试试 Garuda Linux、EndeavourOS 和其他许多基于 Arch 的发行版。

4、Solus Linux

Solus Linux

和 Manjaro 一样,Solus 也是一个 “谨慎” 的滚动发行版。与 Manjaro 不同的是,它不是基于 Arch 的。它是从头开始创建的,使用的是 eopkg 软件包管理器。Solus 因创造了现代而直观的 Budgie 桌面环境备受赞誉。

像其他滚动发布的发行版一样,一旦你安装了 Solus,你就不需要升级到下一个版本的发行版(也可以像 ISO 刷新一样进行全新安装,带有更新的软件包)。

万一有欠缺的软件包也可以用 Snap 应用程序来补足。

如果你想要一些不同的东西,但又不至于复杂到让你感到不舒服,那么 Solus 是一个不错的选择。

5、Debian Testing

Debian

你没有想到吧?Debian 以其对稳定性的关注而闻名,以至于其稳定的有时就像是陈旧,因为它提供的软件版本已经相当老旧。

但那是针对稳定分支的。Debian 有几个分支,其中一个叫做 Testing 分支。

看起来 Testing 是某种测试版、不稳定的版本,但这并不完全正确。Debian Testing 其实是下一个 Debian 稳定版本。实际的开发分支是 Debian Unstable(即 Sid)。Debian Testing 介于不稳定版和稳定版分支之间,它会在稳定版之前添加新的功能。

有些人在配置 Debian 时,在源列表中加入 testing。这使得他们的 Debian 系统永远停留在测试阶段。这是一种滚动发布的模式,Debian 用户可以不必离开舒适的 APT 和 deb 软件包管理系统。

6、Void Linux

Void Linux

这是一个不寻常的、不太出名的发行版。Void 也是从头开始创建的,也就是说,它不是基于 Arch、Red Hat 或 Debian。

它是滚动发布的,但不像 Arch 那样激进。它优先考虑的是稳定性。这意味着当新的版本发布时,你不需要升级版本,但你也不会在最新的桌面环境版本一发布就得到它。

与其他发行版不同的另一点是,它使用 runit 作为初始化系统。

总的来说,如果你是一个有经验的 Linux 用户,Void 是一个不错的选择。

7、Gentoo Linux

Gentoo Linux

另一个是你的同行们警告过的 专家级 Linux 发行版 之一。

Gentoo 不是每个人都能享用的茶或咖啡(无论你喜欢哪一种)。从安装到配置再到软件包管理都需要一定的专业知识和时间。

但是它有一个小众的专家用户群,他们会在编译一切需要的组件时废寝忘食。

如果你觉得其他发行版都不够有挑战性,Gentoo 可能是你的选择。

你对滚动发布的发行版有什么建议?

正如我之前提到的,我在这里特意将其他基于 Arch 的发行版排除在外,否则列表中就只有 Arch 的衍生产品了。

但你可以自由地投出你的推荐,即使它是基于 Arch 的。评论区都是你的。


via: https://itsfoss.com/best-rolling-release-distros/

作者:Abhishek Prakash 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

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

 title=

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

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

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

注释你的代码

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

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

开始设置

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

C:\>MD TEMP
C:\>CD TEMP
C:\TEMP>

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

ECHO Hello world

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

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

C:\TEMP>COPY CON TEST1.BAT
CON => TEST1.BAT
ECHO Hello world
^Z

C:\TEMP>TEST1
Hello world

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

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

C:\TEMP>ECHO
ECHO is on

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

C:\TEMP>ECHO+

C:\TEMP>

批处理文件变量

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

创建 TEST3.BAT

@MD BACKUPS
COPY %1 BACKUPS\%1

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

C:\TEMP>TEST3 TEMP1.BAT
TEST1.BAT => BACKUPS\TEST1.BAT

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

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

DIR %1

尝试运行它:

C:\TEMP>TEST4.BAT C:\HOME
ARTICLES
BIN
CHEATSHEETS
GAMES
DND

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

C:\TEMP>TEST4.BAT C:\HOME C:\DOCS
ARTICLES
BIN
CHEATSHEETS
GAMES
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 文件:

COPY %1 %2
DIR

保存它,然后执行命令:

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

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

嵌套批处理文件

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

第一个文件被称为 NBATCH1.BAT

@ECHO OFF
ECHO Hello
CALL NBATCH2.BAT 
ECHO world

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

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

echo from FreeDOS

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

C:\TEMP\>NBATCH1.BAT 
Hello
from FreeDOS
world

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

FreeDOS 脚本

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


via: https://opensource.com/article/21/3/batch-files-freedos

作者:Kevin O'Brien 选题:lujun9972 译者:[robsean]](https://github.com/robsean) 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出