在forfiles中使用call

时间:2015-05-18 09:18:27

标签: batch-file batch-processing

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

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

注意:myPath是一个带空格的路径,因此我必须将其放在""内。

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

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

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

  

错误:El sistema no puede encontrar el archivo especificado。

Translanted:

  

错误:系统找不到指定的文件

由于我发现的每个例子都使用/c选项启动了一个新的控制台,我也这样做了,就像我对echo一样:

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

但后来我得到了:

  

Intentonoválidodellamar una etiqueta por lotes fuera de un archivo   de script por lotes。

翻译:

  

无效尝试在文件批处理脚本之外调用批处理标签。

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

如何才能在循环中调用我的函数

提前谢谢

1 个答案:

答案 0 :(得分:1)

只需使用for循环:

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