Batch file 生成批处理文件以编译汇编程序

Batch file 生成批处理文件以编译汇编程序,batch-file,assembly,Batch File,Assembly,我目前正在学习汇编程序,他们使用的版本比较旧,由3个文件组成,ASM.exe、LINK.exe、TD.exe,这些文件通过DosBox运行。 基本上,我需要执行三个命令: asm [filename].asm; link [filename].obj; td [filename] 为了编译,我想创建一个我键入的批处理文件:run[filename] 因此,它将只使用文件名并编译所有内容 有谁能帮我一下,或者给我一个提示,告诉我在哪里可以找到这些信息吗?如果您只提供文件名,而不提供扩展名,那么您

我目前正在学习汇编程序,他们使用的版本比较旧,由3个文件组成,ASM.exe、LINK.exe、TD.exe,这些文件通过DosBox运行。 基本上,我需要执行三个命令:

asm [filename].asm;
link [filename].obj;
td [filename]
为了编译,我想创建一个我键入的批处理文件:
run[filename]

因此,它将只使用文件名并编译所有内容


有谁能帮我一下,或者给我一个提示,告诉我在哪里可以找到这些信息吗?

如果您只提供文件名,而不提供扩展名,那么您的批处理可能看起来像:

IF [%1]==[]  (
    echo WRONG SYNTAX: run ^<filename^>
    exit /b 1
)
asm %1.asm
IF ERRORLEVEL 1 (
    echo ERROR: Could not assemble file. Abandonned execution! 
    exit /b 1
)
link %1.obj
IF ERRORLEVEL 1 (
    echo ERROR: Could not link %1.obj. Abandonned execution! 
    exit /b 1
)
td %1
如果[%1]=[](
echo错误语法:run^
退出/b 1
)
asm%1.asm
如果错误级别为1(
回显错误:无法汇编文件。已放弃执行!
退出/b 1
)
链接%1.obj
如果错误级别为1(
回显错误:无法链接%1.obj。已放弃执行!
退出/b 1
)
td%1

正如在评论中提到的,允许路径操作的扩展将不起作用。按照建议,在开始执行之前检查参数是否存在,以及在开始每个步骤之前检查错误级别也更安全

如果只提供文件名而不提供扩展名,则批处理可能如下所示:

IF [%1]==[]  (
    echo WRONG SYNTAX: run ^<filename^>
    exit /b 1
)
asm %1.asm
IF ERRORLEVEL 1 (
    echo ERROR: Could not assemble file. Abandonned execution! 
    exit /b 1
)
link %1.obj
IF ERRORLEVEL 1 (
    echo ERROR: Could not link %1.obj. Abandonned execution! 
    exit /b 1
)
td %1
如果[%1]=[](
echo错误语法:run^
退出/b 1
)
asm%1.asm
如果错误级别为1(
回显错误:无法汇编文件。已放弃执行!
退出/b 1
)
链接%1.obj
如果错误级别为1(
回显错误:无法链接%1.obj。已放弃执行!
退出/b 1
)
td%1

正如在评论中提到的,允许路径操作的扩展将不起作用。按照建议,在开始执行之前检查参数是否存在,以及在开始每个步骤之前检查错误级别也更安全

DosBox模拟x86处理器以及真实的Dos。只有在安装了不同的外壳(如4dos)时,cmd功能才会起作用,但这不包括修改器~dpnxsz非常感谢。我没想过!我调整了回答如果
asm
命令失败,运行
link
命令没有多大意义。也许是检查错误级别?不正常…很好。我的头在哪里??非常感谢您,OSBOX模拟了x86处理器以及真正的Dos。只有在安装了不同的外壳(如4dos)时,cmd功能才会起作用,但这不包括修改器~dpnxsz非常感谢。我没想过!我调整了回答如果
asm
命令失败,运行
link
命令没有多大意义。也许是检查错误级别?不正常…很好。我的头在哪里??非常感谢您尽管与您的问题无关,但您可能对其中包括一个批量编写的基本8086汇编程序感兴趣,该汇编程序“可以用作学习汇编语言基础知识的教育工具”。使用此批处理文件,您可以编写简单的汇编源代码并生成可执行的16位DOS.com文件,而无需任何汇编程序或链接器<代码>:-)虽然与您的问题无关,但您可能对其中包括一个批量编写的基本8086汇编程序感兴趣,该程序“可以用作学习汇编语言基础知识的教育工具”。使用此批处理文件,您可以编写简单的汇编源代码并生成可执行的16位DOS.com文件,而无需任何汇编程序或链接器<代码>:-)