Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 2735
Благодарности: 1699

Профиль | Отправить PM | Цитировать


Tco 03, Ваше второе сообщение не очень коррелирует с первым. Итак решение ИМХО с условием, совпадающем с предыдущим (как я его понял во втором сообщении):
Есть папка Tmp и TmpArc.
Сравниваем файл из D:\Tmp с одноименным файлом в архиве D:\TmpArc.
Если файлы разные или в D:\TmpArc его нет, то из D:\Tmp перемещаем файл в D:\TmpErr
Если файлы одинаковые, то перемещаем в D:\TmpIn
Единственное отличие, файлы могут содержаться в поддиректориях и при перемещении структуру директорий надо сохранить.
Код: Выделить весь код
@echo off

FOR /R "D:\Tmp" %%f IN (*.*) DO Call :Files "%%f"
GoTo :Eof

:Files

Set TmpFtp=%1
Set TmpArc=%TmpFtp:D:\Tmp=D:\TmpArc%

Set TmpFtp=%~dp1
Set TmpErr=%TmpFtp:D:\Tmp=D:\TmpErr%
Set TmpIn=%TmpFtp:D:\Tmp=D:\TmpIn%


Call :CompMove %1 %TmpArc%
GoTo :Eof

:CompMove

Set L=1
If Not Exist %2 Set L=0
If %L% EQU 1 If Not %~z1==%~z2 Set L=0
If %L% EQU 0 (
        If Not Exist %TmpErr% Md %TmpErr%
	Move /Y %1 %TmpErr% >nul
        GoTo :Eof
)

fc /B %1 %2 >nul 

If %ErrorLevel%==0 (
        If Not Exist %TmpIn% Md %TmpIn%
	Move /Y %1 %TmpIn% >nul
) Else (
	If Not Exist %TmpErr% Md %TmpErr%
	Move /Y %1 %TmpErr% >nul
)
Аккуратно замените мои пути D:\Tmp D:\TmpArc D:\TmpErr D:\TmpIn на свои в коде

orgia, В личном сообщении Вы писали
Цитата:
Может имеет значение что у мну стоит win7 64x? Я по пооду отработки первого варианта пакетника?
А второй пишет, что не найден пакетный файл CompMove
У меня нет в близком доступе такой системы, не берусь вникнуть в эту проблему. Обнародовал личное сообщение в надежде, что кто-то более сведущий сможет Вам помочь.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 16-02-2013 в 16:16.

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:05, 16-02-2013 | #14