在 forfiles 中使用调用

Use call inside a forfiles

我有一个脚本,我想在其中为目录中的每个文件调用一个函数。使用 forfiles,我已经能够像这样列出它们:

forfiles /p "%myPath%" /c "cmd /c echo @path NAME @file"

注意:myPath是带空格的路径,所以我只好放在"".

里面

但是,我需要使用一个函数 LaunchRun 我在我的批处理文件中,所以我尝试了:

forfiles /p "%myPath%" /c "call:LaunchRun @path @file"

我的函数需要这两个参数。问题是我得到:

ERROR: El sistema no puede encontrar el archivo especificado.

翻译:

Error: System can't find the specified file

由于我发现的每个示例都使用 /c 选项来启动新控制台,因此我也试过了,就像我对 echo 所做的那样:

forfiles /p "%myPath%" /c "cmd /c call:LaunchRun @path @file"

但后来我得到:

Intento no válido de llamar una etiqueta por lotes fuera de un archivo de script por lotes.

已翻译:

Invalid attempt to call batch label outside of a file batch script.

这似乎是因为我在新控制台中调用它。

我该怎么做才能在循环中调用我的函数

提前致谢

只需使用 for 循环:

for /r "%myPath%" %%a in (*) do call:LaunchRun "%%~a" "%%~nxa"