在 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"
我有一个脚本,我想在其中为目录中的每个文件调用一个函数。使用 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"