如何在 .BAT 文件调用中将文件名作为参数传递

如何在 .BAT 文件调用中将文件名作为参数传递

最近我一直在摆弄 DOSbox,其中一项特别的任务就是设置一系列用于调用的批处理文件,以便节省一些cd时间。典型的 .bat 文件可能如下所示:

cd wolf3d
wolf3d -goobers
cd ..

有一件事有点烦人,那就是没有内置的文本编辑器,比如 pico/nano。话虽如此,我已经安装了 QBASIC,因此我正在考虑的一个选项是进行设置,以便我可以进行如下调用:

nano filename.bat

它将在 QBASIC 中打开该文件。

我阅读了一些关于批处理脚本如何工作的内容,看来只需%1在脚本中添加一个就足够了,例如:

cd qbasic
qbasic %1
cd ..

然而,最终发生的情况是,如果我输入,比如说nano nano.bat我可以编辑批处理文件,它最终会打开一个新的空白nano.bat文件。

我尝试查找这里遗漏的内容,但这似乎有点太晦涩难懂,很难找到。有人能指出这里遗漏了什么吗?

谢谢!

答案1

在我的评论中进一步详细说明:

  • 如果将相对路径作为参数传递给批处理,而该批处理本身会更改当前文件夹,但传递与新文件夹无关,则传递将会失败。
  • 或者通过绝对通行证
  • 或者,如果不是绝对必要,则不要更改当前文件夹。Qbasic 是一个独立.exe文件,可以通过路径访问。要将其用作编辑器,有一个/Editor选项(只需在 VDOS Plus(DosBOX 衍生产品)中检查它)

因此将你的 nano.bat 更改为

@Qbasic.exe /Editor %1

只要 Qbasic.exe 可以通过路径中的文件夹访问即可。

答案2

尝试双百分号,即 %%1。DOS 中的批处理文件并不完全遵循与其 DOS shell 等效项相同的参数规则。

相关内容