Этот фрагмент кода
forfiles /P %pathname% /M *.log /c "cmd /c echo @file"
с радостью выведет список файлов.
Мы могли бы заменить ECHO
на RENAME
или MOVE
или многие другие комбинации внутренних команд: исключение составляет CALL
для имени метки.
Например, заменив ECHO
выше следующим образом:
forfiles /P %pathname% /M *.log /c "cmd /c CALL :listit @file"
: :
: :
exit /b
:listit
echo %1
exit /b
Что, как я надеялся, будет иметь тот же вывод дает сообщение об ошибке, обычно
Invalid attempt to call batch label outside of batch script.
Это поведение не является чем-то, о чем говорится в документации Microsoft, и, поскольку альтернативы вполне адекватны, я не пытался заставить его работать.
Но меня интересует Ну, почему бы и нет?! , и поэтому я задаю вопрос
Почему мы не можем использовать команду CALL: label в скрипте FORFILES?
Спасибо.