Войти

Показать полную графическую версию : сопоставить файлы в двух директориях


alyam83
06-11-2018, 15:45
добрый день!
будьте добры, помогите, пожалуйста, написать скрипт:
есть 2 директории:
c:\program files\microsoft office\addins и \\server\addins
нужно сравнить файлы *.xla и *.xlam в директориях по дате создания. если совпадают, то истина, иначе - ложь

Kazun
06-11-2018, 16:12
-not (diff (ls "c:\program files\microsoft office\addins\*" -inc *.xla, *.xlam -file) (ls "\\server\addins\*" -inc *.xla, *.xlam -file) -Property Name,CreationTime)

alyam83
06-11-2018, 16:54
выдает ошибку, если файлы в директории отсутствуют

\\server\addins - это эталон.
если файлы отсутствуют или не совпадают я из эталонной папки должен их скопировать.

Kazun
06-11-2018, 17:11
robocopy "\\server\addins" "c:\program files\microsoft office\addins" *.xla *.xlam /mir

alyam83
06-11-2018, 17:25
да. еще /purge

но нужно проверить условие:
если файлы *.xla *.xlam не совпадают по дате с файлами из эталонной папки, или отсутствуют, то ложь.

Iska
06-11-2018, 17:29
но нужно проверить условие »
Зачем?!

alyam83
06-11-2018, 17:30
метод обнаружения в sccm, чтобы robocopy выполнить.
иначе команда robocopy будет выполняться постоянно

смысл такой: если метод обнаружения выдает ложь, то robocopy выполняется. если истина, то ничего не выполняется

Kazun
06-11-2018, 18:39
Какая разница, будет дергаться скрипт или robocopy?

$local = ls "c:\program files\microsoft office\addins\*" -i *.xla, *.xlam -file -ea 0
$remote = ls "\\server\addins\*" -i *.xla, *.xlam -file -ea 0

if($local -and $remote) {
-not (diff $local $remote -Property Name,CreationTime)
} else {
$false
}




© OSzone.net 2001-2012