Batch file MSDOS在屏幕上打印整个批处理文件,而不是执行
每当我尝试执行一个批处理文件时,即使是一个简单的批处理文件,它都会打印出整个文件,而不是执行它。我已经在MS-DOS3.3和4.0上试过了,它们都可以这样做。如果我在命令提示符中单独执行每个命令,尽管它们可以工作(因此,如果我在命令提示符中键入“pause”,它将暂停,与其他命令相同)。批处理文件在Windows 2000中执行良好(我拥有的唯一一台可以读取720k软盘的计算机) 下面是我的代码,名为Batch file MSDOS在屏幕上打印整个批处理文件,而不是执行,batch-file,dos,Batch File,Dos,每当我尝试执行一个批处理文件时,即使是一个简单的批处理文件,它都会打印出整个文件,而不是执行它。我已经在MS-DOS3.3和4.0上试过了,它们都可以这样做。如果我在命令提示符中单独执行每个命令,尽管它们可以工作(因此,如果我在命令提示符中键入“pause”,它将暂停,与其他命令相同)。批处理文件在Windows 2000中执行良好(我拥有的唯一一台可以读取720k软盘的计算机) 下面是我的代码,名为test.bat: @echo off cls echo Hello World! pause
test.bat
:
@echo off
cls
echo Hello World!
pause
它在执行时的样子,顶部的文本表示test是我执行的程序名:
为了让所有用户都能轻松地获取答案: 在MS DOS中准备并运行DOS批处理文件:
正如其他人在评论中提到的,test.bat文件不包含不可见的回车字符-仅包含换行字符。对于Unix/Linux来说,这很好,但DOS两者都需要。整个文件被视为一行 由于这是一个简单的文件,您只需使用命令
copy con test.bat
重新键入它,并在完成后键入CTRL+Z
。不幸的是,这只允许您创建新文件,而不允许编辑现有文件
正如您所发现的,MS-DOS4早于edit
命令。但它确实附带了另一个(更烦人的)文本编辑器:edlin
您一次只能编辑一行,而且键盘控件并不十分直观,因此请查看此链接以了解有关导航界面的详细信息:您的文件可能已从msdos换行符(
\r\n
)转换而来,现在仅是unix文本文件(\n
新行)。或者,我对批编码比较陌生,我不太明白。你介意再解释一下吗?谢谢ps:我在dos中用wordperfect输入了这个程序,并保存为test.bat,如果这很重要,请不要使用wordprocessor编辑代码。不记得edit.com是什么时候成为dos的一部分的,但是如果它可用的话,可以使用它——它是一个纯文本编辑器。最糟糕的情况是,您可以通过执行copy con>test.bat
并键入命令来重新创建bat,然后点击F6完成。向上投票仅仅是因为您使用了ms dos标记,并且您实际上正在使用ms dos。@MarcB将您的评论作为答案重新发布,以便OP可以接受它。