【问题标题】:Clickable batch file for nasm compiler用于 nasm 编译器的可点击批处理文件
【发布时间】: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


【解决方案1】:

build.bat:

@echo off
set "path=%LocalAppData%\bin\NASM;%path%"
del /Q foo.flp
nasm foo.asm -f bin -o foo.flp -l foo.lst

你可能不需要像你一样调用 nasmpath.bat 只是更新 PATH 变量。调用 nasmpath.bat 似乎与添加到 PATH 的路径具有相同的路径 就像路径的重复,即您需要知道 调用其他脚本的路径。

此脚本将在当前目录中运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-12
    • 2016-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多