MSDOS 在屏幕上打印整个批处理文件而不是执行

Posted

技术标签:

【中文标题】MSDOS 在屏幕上打印整个批处理文件而不是执行【英文标题】:MSDOS prints the whole batch file on screen instead of executing 【发布时间】:2016-07-24 14:31:43 【问题描述】:

每当我尝试执行一个批处理文件,即使是一个简单的批处理文件,它都会打印出整个文件而不是执行它。我已经在 MS-DOS 3.3 和 4.0 上尝试过,两者都这样做。如果我在命令提示符下单独执行每个命令,尽管它们有效(因此,如果我在命令提示符中键入“pause”,它将暂停,与其他命令相同)。批处理文件在 Windows 2000 中执行良好(我拥有的唯一一台可以读取 720k 软盘的计算机) 我的代码如下,命名为test.bat

@echo off
cls
echo Hello World!
pause

执行时的样子,顶部的测试文本是我执行的程序名称:

【问题讨论】:

您的文件可能已从 msdos 换行符 (\r\n) 转换,现在只是一个 unix 文本文件 (\n 新行)。或者\l换行符。 嗨,我对批处理编码比较陌生,我不太明白。你介意进一步解释吗?谢谢! ps:我在dos中用wordperfect输入了程序,如果重要的话,保存为test.bat 不要使用文字处理器来编辑代码。不记得 edit.com 何时成为 dos 的一部分,但如果可用,请使用它——它是一个纯文本编辑器。在最坏的情况下,您可以通过执行copy con > test.bat 并输入您的命令来重新创建您的球棒,然后按 F6 完成。 投赞成票仅仅是因为您使用了 ms-dos 标签并且您实际上正在使用 ms-dos @MarcB 重新发布您的 cmets 作为答案,以便 OP 接受它。 【参考方案1】:

为了让所有用户都能轻松获得答案:

在 MS DOS 中准备和运行 DOS 批处理文件:

    将 DOS 应用程序 edit.com 和 qbasic.exe 复制到您的 MS-DOS 磁盘 在 edit.com 中输入您的批处理文件,不要使用文字处理器 在 MS-DOS 中运行它。它应该可以正常工作。

【讨论】:

【参考方案2】:

正如其他人在 cmets 中提到的那样,您的 test.bat 文件不包含不可见的回车符 - 只有换行符。这对 Unix/Linux 来说很好,但 DOS 两者都需要。整个文件被视为一行。

由于这是一个简单的文件,您只需使用命令copy con test.bat 重新输入它,然后在完成后输入CTRL+Z。不幸的是,这只会让您创建文件,而不能编辑现有文件。

正如您所发现的,MS-DOS 4 早于edit 命令。但它确实带有另一个(更烦人的)文本编辑器:edlin

您一次只能编辑一行,并且键盘控件不是很直观,因此请查看此链接以了解有关导航界面的详细信息:http://www.computerhope.com/edlin.htm

【讨论】:

以上是关于MSDOS 在屏幕上打印整个批处理文件而不是执行的主要内容,如果未能解决你的问题,请参考以下文章

Node/Express:数据库打印在屏幕上而不是 index.html

在文件中写入打印日志时,Python子进程在屏幕缓冲区中延迟

Sed工作原理

为啥它只打印文本文件的一个单词而不是整个文本文件到 html 文件

电脑上的MSDOS窗口指的是啥?指的是怎样的窗口呢?

在整个屏幕宽度上打印破折号[重复]