У меня действительно простой цикл for, который я пытаюсь сделать в командной строке / командном файле Windows CMD (я пробовал использовать% i в командной строке и %% i в командном файле):

for %%i in (workspace\*) do echo %%i

Я не хочу отображать все подпапки в папке (просто как очень простой пример, чтобы заставить цикл работать), но ничего не отображается.

Что я здесь не так делаю?

2 ответа2

1

Если вы запускаете это из командной строки, а не из пакетного файла, вам нужно использовать% i, а не %% i.

Кроме того, вы можете использовать forfiles которые имеют различные параметры и могут очень хорошо работать для того, что вам нужно сделать.

Forfiles также находит папки.

1

По умолчанию for дисплеев только файлы, а не каталоги, поэтому каталог , содержащий только подкаталоги ничего не покажет. Чтобы показать каталоги, вам нужно добавить параметр /d :

for /d %%i in (workspace\*) do echo %%i

Предполагается, что команда находится в командном файле (только один знак % если набран), и показывает только каталоги. Нет возможности показать оба: вам нужно будет использовать команду, такую как предлагает DavidPostill:

for /f "usebackq" %%i in (`dir /b`) do echo %%i

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