2015-03-23 4 views
0

Я только что присоединился к stackoverflow, потому что вы люди потрясающие. Таким образом, я работаю над пакетным скриптом уже год, да, я знаю, что это так же стара, как «Унесено ветром», но у меня нет выбора.Пакетная замена нескольких файлов в нескольких подпапках

My BATCH вопрос это. Мне нужно сравнить c: \ folder1 \ *.bat с E: \ Folder4 \ *.bat и вернуть только те файлы «.bat», которые совпадают. Я могу легко достичь этого с помощью этого кода ....

для/R с: \ folder1 \ %% я в ( .bat) делать, если существует "E: \ Folder4 \ %% ~ Nxi" (эхо %% ~ ni)

Затем я могу сделать так, как мне нравится, что по большей части является резервным копированием и заменой. Тем не менее, я просто столкнулся с чем-то интересным. Теперь нужно выполнить ту же операцию, но как так:

Сравнение файлов в C: \ folder1 * .bat с

E: \ Folder4 \ subfolder1 \ * .bat
E: \ Folder4 \ subfolder2 \ * .bat
E: \ Folder4 \ subfolder3 \ * .bat
E: \ Folder4 \ subfolder4 \ * .bat
E: \ Folder4 \ subfolder5 \ * .bat
E: \ Folder4 \ subfolder6 \ * .bat

и так далее.

MY BATCH вопрос как я могу сравнить то, что находится в каталоге c: \ folder1 * .bat, и посмотреть, есть ли оно также в каждой папке E: \ Folder4 \? Как только это будет сделано, мне также нужно будет заменить то, что находится в папке E: \ Folder4 \ с соответствующими файлами из c: \ folder1 * .bat. Я сделал это на других языках, но не знаю, как в партия.

Благодаря

ответ

0

Если я понять ваш вопрос правильно, то что-то подобное может работать:

for %%i in (
    "D:\Folder4\subfolder1\*.bat" 
    "D:\Folder4\subfolder2\*.bat" 
    "D:\Folder4\subfolder3\*.bat" 
    "D:\Folder4\subfolder4\*.bat" 
    "D:\Folder4\subfolder5\*.bat" 
    "D:\Folder4\subfolder6\*.bat" 
    ) do XCOPY /U /Y "C:\folder1\*.bat" "%%i" 

В основном команда XCOPY имеет опции я считаю, вам требуется.

EDIT

Мое понимание растет: P ... это, пожалуй, больше, что вы ищете:

@echo off 
for /r D:\Folder4\ %%i in (*.bat) do (
for /r C:\folder\ %%j in (*.bat) do (
if %%~ni == %%~nj XCOPY /U /Y "%%j" "%%i" 
) 
) 
pause 
+0

Спасибо Крис. Да, это идея, но мне нужен цикл for, потому что «D: \ Folder4 \» растет часто, и я не знаю, где в «D: \ Folder4» «.bat» файл, который я ищу, есть. Вот что я кулак и работает, но по какой-то нечетной причине дублирует некоторые результаты, но не все, что странно .. для/RC: \ folder1 %% a in (* .dtsx) do ( \t для/RD : \ Folder4 %% б в (* .dtsx) делать ( \t \t если %% ~ на == %% ~ пь эхо %% ~ пь \t \t \t) \t \t \t) возможно/б?О, и эхо в цикле просто для подтверждения, я нашел правильный «.bat». – havek

+0

Hello hask! ... См. ** ИЗМЕНИТЬ ** в своем ответе: D –

+0

Да, это то, что у меня уже есть, и да, xcopy выполнит эту работу, хотя я использовал обычную «копию» ole. Теперь, последний вопрос. Вы повторили эту рутину? Почему он дублирует результаты? Итак, скажем, у вас есть 6 «.bat» файлов (что я тестирую), он повторяет, что он нашел 3 из них по 3 раза каждый. Любая идея почему? О, добавленная информация, у меня есть 1 «.bat» в 1 папке, 2 разных «.bat» во второй папке, 3 разных «.bat» в третьей папке. последняя папка, где я получаю повторы – havek

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