2009-01-28 151 views
4

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

@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文件结尾,并且在记事本++中,@echo关闭和暂停的语法高亮显示,而不是手动设置。 这是一个Windows 7的错误?或者我做错了什么?

回答

5

您是从命令行运行还是通过双击Explorer?

也许你有编辑动作设置为默认值?

尝试右键单击并选择打开

编辑:也许你的行结束符搞砸了。 Windows期望CRLF。

在记事本++:

  • 点击查看 - >显示行尾。
  • 如果它们不是CRLF,请单击“格式” - >“转换为Windows格式”。
+0

我已经试过并且他们都做同样的事情 – 2009-01-28 17:52:14

1

一个简单的例子
Windows 7的安装
使用cygwin让GCC

我用下面的批处理脚本:

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

在下面的C文件:

main() { 
     printf("hello, world"); 
} 

它编译得很好。

我的结论
Windows 7的批处理脚本在以前版本的Windows的工作非常像。

可能会发觉你的
的gcc默认是不安装在Windows上简单的事情,我建议要么cygwinmingw
的gcc没有在默认情况下,PATH您已经安装GCC后,你可以将其添加到系统的环境变量或将其添加到批处理脚本中(使用类似我刚刚使用的批处理脚本的第一行)。

+0

我在我的路径中设置了djgpp。如果我只是手动键入命令,它工作正常。但它没有做任何事情,只是在批处理文件中打印行号 – 2009-01-28 17:51:43