【发布时间】:2018-05-06 23:24:23
【问题描述】:
我想通过双击我的 .asm 文件目录中的批处理文件来编译汇编代码。原因是因为NASM调用的参数很少,每次都想绕过这一步。
我写了一个可以工作的批处理,但前提是你双击桌面上的 NASM 快捷方式(这会调用 nasmpath.bat 并打开一个命令提示符窗口),然后键入批处理文件并在打开的(Windows 10) 命令提示符。
我尝试创建一个调用 nasmpath.bat 的批处理,然后继续自动编译,但没有任何反应。
这是我的批处理文件 build.bat(不工作):
call C:\Users\Nick\AppData\Local\bin\NASM\nasmpath.bat
del /Q foo.flp
nasm foo.asm -f bin -o foo.flp -l foo.lst
另外,这里是 nasmpath.bat:
@set path=C:\Users\Nick\AppData\Local\bin\NASM;%path%
@%comspec%
【问题讨论】:
-
nasmpath.bat 是什么样的?那里的语法错误或
exit语句会阻止 build.bat 的其余部分运行 -
已编辑:添加了上述 .bat 的内容。
-
用
@rem %comspec%注释掉@%comspec%然后试试看。 nasmpath.bat 的角色已更改,但您似乎还没有为更改调整代码。 -
如果您打开 build.bat 所在的控制台窗口并从控制台运行它,那么您可能会看到一条错误消息。我怀疑您收到无效字符错误,即双引号路径字符串如
@set "path=C:\Users\Nick\AppData\Local\bin\NASM;%path%"。 -
就像额外的背景一样,之前发生的事情是 build.bat 调用了 nasmpath.bat,然后它启动了一个新的 cmd.com 实例(这就是
@%comspec%行所做的),然后让你停留在那个新的 cmd.com 中。如果您输入exit以离开新的 cmd.com,它将返回批处理文件并继续运行您的其余命令,但显然这最终不是您想要的。
标签: batch-file console-application nasm