Пакетный файл Windows: получить путь к папкам и сохранить их в переменной - PullRequest
0 голосов
/ 12 февраля 2010

Здравствуйте! Мне нужен командный файл для хранения в переменной всех путей всех каталогов / подкаталогов с именем ".svn", которые я могу найти в my_folder.

Что-то вроде:

@ECHO OFF
FOR /r my_folder %%X IN (.svn) DO (ECHO %%X)

команда выше выводит их на экран, но мне нужно сохранить их в переменной в виде списка строк. Кто-то знает, как это сделать?

Это сайт, который я использую для помощи с пакетными файлами: http://ss64.com/nt/

После того, как я хочу передать значение такой переменной в команду RD, чтобы удалить их вместе с этими подпапками / файлами. Допустим, переменная имеет имена $a я сделаю что-то вроде:

RD /s /q $a

1 Ответ

1 голос
/ 12 февраля 2010

Самое простое решение без каких-либо переменных - ввести команду RD внутри цикла FOR. Вы можете использовать несколько команд внутри фигурных скобок, таких как:

@ECHO OFF
FOR /r my_folder %%X IN (.svn) DO (
    ECHO %%X
    RD /s /q %%X
)

Если вам нужно добавить пути к переменной, вы можете сделать это следующим образом:

@ECHO OFF

SET PATH_LIST=
SETLOCAL ENABLEDELAYEDEXPANSION   

FOR /r my_folder %%X IN (.svn) DO (
    ECHO %%X
    SET PATH_LIST=!PATH_LIST! "%%X"
)

ENDLOCAL

RD /s /q %PATH_LIST%

Но имейте в виду, что переменные среды имеют ограниченный размер. В Windows XP одна переменная может содержать макс. 8 192 байта.

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