Я пытаюсь выполнить следующую команду из командного файла:

@echo off & for /f "delims=*" %A in ('dir /s /b') do echo %~fA %~zA >> "\path\to\output.txt"

Я нашел эту команду из другого потока. Он распечатывает весь список файлов вместе с размером файла.

Я могу выполнить это очень хорошо при вставке в окно командной строки, но когда я бросаю его в командный файл, ничего не происходит. Я что-то пропустил? Почему это не удалось при выполнении из .bat?

1 ответ1

1

Попробуйте %% например, for %%f а не for %f , это может сработать. В пакетных файлах вы должны использовать for %%f а не for %f . for %f только для командной строки. Измените все ссылки, поэтому я полагаю, что %%~zA а не %~zA

Вы действительно должны были устранить неполадки и попробовать даже простой цикл for, например for %a in (*.*) do @ECHO %a вы бы тогда поняли, что он также работает в командной строке, а не в командном файле и, возможно, вы ' узнал о требовании %%.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .