2015-10-15 2 views
0

Я хочу взять файл из исходного каталога (C:\Users\Desktop\Source\Test.xlsx) и хочу реплицировать его в несколько папок, все из которых имеют одинаковую структуру. Поэтому мне нужно изменить только одно имя папки. Все выполняется через один пакетный файл и только один файл журнала, который создается впоследствии.Пакет: сохранение списка каталогов в переменной списка

Чтобы динамически расширение моей пакетной процедуры здесь, я хочу сделать фильтрацию элементов в корневой папке (C:\Users\Desktop\Replica\), который показывает мне Чайлдс (onetwothreefourfive), где файл должен быть скопировано внутри testfolder. Там я сделал следующее в тот момент, который является статическим:

set "list=one two three four five" 
(
for %%i in (%list%) do (
    xcopy "C:\Users\Desktop\Source\Test.xlsx" "C:\Users\Desktop\Replica\%%i\testfolder" /Y 
echo(%%i 
echo(
) 
)>copylog.txt 

Итак, мой вопрос, в основном, кто я листинг только папок под «репликой» и поместить те внутри переменный список я могу использовать в коде, как уже написано. Я только нашел источники, где они просто сохраняются в отдельном .txt-файле, но я просто хочу сохранить его внутри партии.

Любые догадки об этом?

Кстати: я испытал сохранение пути как переменной, я не смог выполнить xcopy %source% %target% (даже при наличии «%source%» или source = "Path"). В чем проблема?

ответ

0

Вам не нужно искать в каталогах, помещать их в переменную, а затем перебирать значения в переменной. Просто итерация по каталогам

... 
for /d %%i in ("C:\Users\Desktop\Replica\*") do (
    xcopy /y "C:\Users\Desktop\Source\Test.xlsx" "%%~fi\testfolder" 
... 

for /d Переберет указанный набор каталогов. В команде xcopy команда %%~fi используется для извлечения полного пути каталога для текущей итерации.

+0

Спасибо, что отлично работает. Я просто забыл идею/* ... Пакет относительно новый для меня - даже когда он старый. – Kaibear

Смежные вопросы