Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file MSDOS在屏幕上打印整个批处理文件,而不是执行_Batch File_Dos - Fatal编程技术网

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

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

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

@echo off
cls
echo Hello World!
pause
它在执行时的样子,顶部的文本表示test是我执行的程序名:

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

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

  • 将DOS应用程序edit.com和qbasic.exe复制到MS-DOS磁盘
  • 在edit.com中键入批处理文件,不要使用文字处理器
  • 在MS-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可以接受它。