小编ili*_*kcs的帖子

为什么我们不能在 FORFILES 脚本中使用 CALL :label 命令?

这段代码

forfiles /P %pathname% /M *.log /c "cmd /c echo @file"
Run Code Online (Sandbox Code Playgroud)

会很高兴地列出一堆文件。

我们可以替换ECHOwithRENAME或MOVE或许多其他内部命令的组合:例外是CALL标签名称的 a 。

例如将ECHO上面的替换如下:

forfiles /P %pathname% /M *.log /c "cmd /c CALL :listit @file"
 : :
 : :
exit /b

:listit
echo %1
exit /b
Run Code Online (Sandbox Code Playgroud)

我希望有相同的输出会给出错误消息,通常

Invalid attempt to call batch label outside of batch script.
Run Code Online (Sandbox Code Playgroud)

这种行为不是 Microsoft 的文档所评论的,而且由于替代方案已经足够了,我并没有打算让它发挥作用。

不过我有兴趣嘛,为什么不呢?!,所以我提出这个问题

为什么我们不能在 FORFILES 脚本中使用 CALL :label 命令?

谢谢你。

cmd batch-file forfiles

3
推荐指数
1
解决办法
749
查看次数

标签 统计

batch-file ×1

cmd ×1

forfiles ×1