【问题标题】:Problem with windows Batch file on windows 7windows 7上的windows批处理文件问题
【发布时间】:2010-10-03 22:29:06
【问题描述】:

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

@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的错误吗?还是我做错了什么?

【问题讨论】:

    标签: windows-7 batch-file


    【解决方案1】:

    您是从命令行运行还是通过在资源管理器中双击运行?

    也许您将 Edit 操作设置为默认操作?

    尝试右键单击并选择打开

    编辑:也许你的线路终止符搞砸了。 Windows 需要 CRLF。

    在记事本++中:

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

    【讨论】:

    • 可能你的线路终结器搞砸了。我认为 Windows 需要 CRLF。在记事本++中,单击查看->显示行尾。如果它们不是 CRLF,请单击“格式”->“转换为 Windows 格式”。
    • @aphoria:您应该将您的评论移至答案正文,因为这是实际的解决方案。
    【解决方案2】:

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

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

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

    在以下 c 文件中:

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

    它编译得很好。

    我的结论
    Windows 7 批处理脚本的工作方式与以前版本的 Windows 非常相似。

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

    【讨论】:

    • 我的路径中有 djgpp 设置。如果我只是手动输入命令,它工作正常。但如果我在批处理文件中这样做,它只会打印该行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-01
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-27
    相关资源
    最近更新 更多