将多个命令放入一个批处理文件中

时间:2013-06-14 22:44:01

标签: batch-file

我觉得这必须如此简单,不知怎的,我只是遗漏了一些东西。我有3个命令,我必须连续执行。如何将这些全部放入一个批处理文件中?

以下是命令:

cl /c /Zl /I"c:\EFI_Toolkit_2.0\include\efi" /I"c:\EFI_Toolkit_2.0\include\efi\em64t" c:\sandbox\efi_main.c
link /entry:main /dll /IGNORE:4086 efi_main.obj
fwimage.exe app efi_main.dll efi_main.efi

我尝试在每行的前面添加'start',虽然我看到每个命令echo'd只有第一个执行(即我只获得efi_main.obj但不是.dll或.efi)。

另外这些需要在visual studio shell中执行,只要我从shell中运行我的批处理文件,我认为这就足够了吗?

1 个答案:

答案 0 :(得分:5)

如果你的意思是他们一个接一个地执行,并重复,尝试这样的事情:

:begin
cl /c /Zl /I"c:\EFI_Toolkit_2.0\include\efi" /I"c:\EFI_Toolkit_2.0\include\efi\em64t" c:\sandbox\efi_main.c
link /entry:main /dll /IGNORE:4086 efi_main.obj
fwimage.exe app efi_main.dll efi_main.efi
goto begin

如果您指的是同时运行,请在每个命令前加上start

start cl /c /Zl /I"c:\EFI_Toolkit_2.0\include\efi" /I"c:\EFI_Toolkit_2.0\include\efi\em64t" c:\sandbox\efi_main.c
start link /entry:main /dll /IGNORE:4086 efi_main.obj
start fwimage.exe app efi_main.dll efi_main.efi

但看起来您正在尝试运行编译器。所以很有可能,你需要结合这两种方法并等待第一种方法完成运行,然后再转到下一个命令或再次重复。为此,您应该将/ wait参数添加到start命令。

:begin
start /wait cl /c /Zl /I"c:\EFI_Toolkit_2.0\include\efi" /I"c:\EFI_Toolkit_2.0\include\efi\em64t" c:\sandbox\efi_main.c
start /wait link /entry:main /dll /IGNORE:4086 efi_main.obj
start /wait fwimage.exe app efi_main.dll efi_main.efi
goto begin

请注意,如果您在visual studio中运行此功能,则可以使用所有很酷的Visual Studio环境选项来获取项目文件夹,项目输出等内容。但是无法启动批处理像这样的文件从VS Shell连续运行并将焦点返回到VS.此外,此文件永远不会完成运行,直到您给它焦点并按Ctrl-C结束它。

相关问题