Пакет, как правильно завершить цикл - PullRequest
4 голосов
/ 11 декабря 2008

для целей тестирования мне нужен рекурсивный каталог с некоторыми файлами, который имеет максимальную длину пути.

Сценарий, использованный для создания, состоит только из двух циклов for, как указано ниже:

for /L %%a in (1 1 255) do @(
    mkdir %%a
    && cd %%a
    && for /L %%b in (1 1 %random%) do @(
            echo %%b >> %%a.txt
        )
)

Теперь я хотел бы встроить этот сценарий как часть другого сценария, поскольку еще многое предстоит сделать, но я не могу добавить какие-либо другие команды вокруг него или он отказывается работать. Я использую это под Windows Vista, если это полезно для вас.

Не сработает, если я напишу "@ECHO OFF "в первой строке, ни с" echo done "в последней строке.

вывод в командной строке:

X:\Scripte>recursive.cmd
OFFfor /L %a in (1 1 255) do @( mkdir %a
The system cannot find the path specified.

EDIT: Кажется, проблема со слоем 8, проблема, кажется, в используемой командной оболочке, если используется голый cmd.exe, он работает, с командной оболочкой visual studio 2008 он не работает, как указано выше.

в любом случае, спасибо.

Ответы [ 2 ]

2 голосов
/ 09 марта 2012

Я не понимаю, как добавить небольшой комментарий под ответом, поэтому я просто сделаю это здесь.

Знак @ перед открывающей скобкой необходим только в том случае, если эхо еще не отключено. В этом случае без знака @ будет отображаться любая команда в цикле FOR.

И да, причина необходимости && заключается в том, что текстовый редактор помещает все это в одну строку. Но никто не опубликовал решение. Просто скопируйте и вставьте в Блокнот, а затем разделите строки по необходимости.

1 голос
/ 11 декабря 2008

Я не думаю, что вам нужны '@' перед паренами или '&&' внутри тела цикла for; Парены заботятся о том, чтобы обрабатывать несколько операторов в цикле for.

У меня работает следующее:

@echo OFF

for /L %%a in (1 1 255) do (
    @echo a = %%a
    mkdir %%a
    cd %%a
    for /L %%b in (1 1 %random%) do (
        echo %%b >> %%a.txt
    )
)

@echo done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...