2009-01-28 4 views
4

J'ai un fichier batch pour compiler et lier tout mon code. Il contient les éléments suivants:Problème avec Windows Fichier batch sur 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 

Problème, lorsque je l'exécute, il imprime tout cela sous forme de texte. C'est définitivement un fichier batch. il a la fin du fichier .bat, et dans le bloc-notes ++, la syntaxe pour @echo off et pause sont mises en évidence sans être définies manuellement. Est-ce un bogue de Windows 7? ou est-ce que je fais quelque chose de mal?

Répondre

5

Exécutez-vous à partir d'une ligne de commande ou en double-cliquant dans l'Explorateur?

Peut-être que vous avez l'action Modifier comme valeur par défaut?

Essayez avec le bouton droit de la souris et sélectionnez Ouvrir.

EDIT: Peut-être que vos terminaisons de ligne sont foirées. Windows attend CRLF.

Dans Notepad ++:

  • Cliquez sur Affichage-> Afficher en fin de ligne.
  • S'ils ne sont pas CRLF, cliquez sur Format-> Convertir au format Windows.
+0

J'ai essayé les deux et ils font tous les deux la même chose –

+0

Peut-être vos terminateurs de ligne sont foiré. Je pense que Windows attend CRLF. Dans Bloc-notes ++, cliquez sur Affichage-> Afficher la fin de ligne. S'ils ne sont pas CRLF, cliquez sur Format-> Convertir au format Windows. – aphoria

+0

Oui, c'était ça. merci –

1

Un simple exemple
Windows 7 installé
En utilisant cygwin pour obtenir gcc

J'ai utilisé le script batch suivant:

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

sur le fichier c suivant:

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

Et il compilé bien.

Ma conclusion
scripts batch de Windows 7 fonctionnent à peu près comme dans les versions précédentes de Windows.

Des choses simples qui pourraient vous faire trébucher
gcc n'est pas installé par défaut sur Windows, je suggère que soit cygwin ou mingw
gcc est pas sur le chemin par défaut après avoir installé gcc, vous pouvez l'ajouter à la variable d'environnement du système ou ajoutez-le dans votre script batch (en utilisant quelque chose comme la première ligne du script batch que je viens d'utiliser).

+0

J'ai configuration djgpp dans mon chemin. si je tape simplement la commande manuellement, cela fonctionne très bien. mais il ne fait rien mais imprimer la ligne si je le fais dans le fichier batch –

Questions connexes