Linux Shell 中的 ` +` 的 Windows 等效项是啥?
Posted
技术标签:
【中文标题】Linux Shell 中的 ` +` 的 Windows 等效项是啥?【英文标题】:What is the Windows equivalent of ` +` in Linux Shell?Linux Shell 中的 ` +` 的 Windows 等效项是什么? 【发布时间】:2021-08-07 13:16:51 【问题描述】:我正在尝试制作一个简单的批处理文件来编译一些代码,但我终其一生都无法弄清楚或找到有关如何执行此操作的任何信息。
在 Linux 上,我正在这样做:
find ./bin-int/ -type f -name '*.o' -exec rgblink -o ./bin/lapis.gb -n ./bin-int/symbols.sym +
这基本上找到了 ./bin-int/ 中所有扩展名为 .o 的文件,并将它们用作命令 rgblink 的输入变量。
但我终其一生都无法弄清楚如何在 Windows 上执行此操作。我得到的最接近的是
for /r ".\bin-int" %%i in (*.o); do rgblink -o ./bin/lapis.gb -n ./bin-int/symbols.sym %%i
这是错误的,因为我不想为每个文件运行一次命令。我希望每个文件同时成为命令的输入。
我该怎么做?谢谢!
【问题讨论】:
批处理文件不使用数组,所以你需要做的是创建一个包含第一个文件名的变量,并继续使用 for 循环方法将每个新文件附加到它,直到它们都被迭代了。完成后,运行一个 rgblink 命令,将该多字符串变量作为最终参数传递。 没有“Linux shell”之类的东西,因为有许多在 Linux 上运行的 shell,如 bash、sh、zsh、csh、ksh、pwsh... @phuclv 我使用的是 Linux Mint 附带的任何东西,大多数 shell 都有类似的命令。但无论如何,这显然不是这个问题的重点。 我已经回滚了你的问题内容@TypeDefinition。请不要在问题本身中发布解决方案。 【参考方案1】:您需要先将列表附加到变量中,然后在命令中运行该列表:
@for /r ".\bin-int" %%i in (*.o) do @call set "list=%%list%% %%i"
rgblink -o ./bin-int/lapis.gb -n ./bin-int/symbols.sym%list%
这是未经测试的,因为我无法确认您的列表应该是什么样子,但您会明白的。
【讨论】:
以上是关于Linux Shell 中的 ` +` 的 Windows 等效项是啥?的主要内容,如果未能解决你的问题,请参考以下文章