Windows 7上的Windows批处理文件问题

4

我有一个批处理文件来编译和链接我的所有代码。它包含以下内容:

@echo off
nasm -f aout -o start.o start.asm
gcc -Wall -O -fstrength-reduce -fomit-frame-pointer -finline-functions -nostdinc -fno-builtin -I./include -c -o main.o main.c
gcc -Wall -O -fstrength-reduce -fomit-frame-pointer -finline-functions -nostdinc -fno-builtin -I./include -c -o scrn.o scrn.c
ld -T link.ld -o kernel.bin start.o main.o scrn.o
pause

问题是,当我运行它时,它只是将所有内容都作为文本打印出来。 它肯定是一个批处理文件。它具有.bat文件扩展名,并且在notepad++中,@echo off和pause的语法被突出显示,而没有手动设置。 这是Windows 7的错误吗?还是我做错了什么?
2个回答

5
你是在命令行中运行还是在文件管理器中双击打开的?也许你将编辑操作设置为默认操作了?尝试右键点击并选择打开
编辑:或许你的行终止符混乱了。Windows 期望 CRLF。
在 Notepad++ 中:
  • 点击 查看->显示行尾符号。
  • 如果它们不是 CRLF,请点击 格式->转换为 Windows 格式。

也许你的行终止符混乱了。我认为Windows期望CRLF。在Notepad++中,点击“视图”->“显示行尾”。如果它们不是CRLF,请单击“格式”->“转换为Windows格式”。 - aphoria
@aphoria:你应该把你的评论移到答案正文中,因为那才是真正的解决方案。 - configurator

1

一个更简单的例子
已安装Windows 7
使用cygwin获取gcc

我使用了以下批处理脚本:

PATH = %PATH%;C:\cygwin\bin;
gcc test.c

在下面的 C 文件中:
main() {
        printf("hello, world");
}

它编译得很好。

我的结论
Windows 7批处理脚本基本上与以前的Windows版本相同。

可能会让你犯错的简单事情
Windows默认未安装Gcc,我建议使用cygwinmingw
安装完Gcc后,默认情况下不在PATH中,您可以将其添加到系统环境变量中或在批处理脚本中添加它(使用类似于我刚刚使用的批处理脚本的第一行的内容)。


我已经在我的路径中设置了djgpp。如果我手动输入命令,它可以正常工作。但是,如果我在批处理文件中执行该命令,则什么也不会发生,只会打印出该行。 - The.Anti.9

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接