Копирование с проверкой на наличие файла и последующее его копирование.
Ребят уже весь интернет прошарил на поиски своей проблемы. Ситуация такая: Идет копирование документа war.txt из C:\1 в C:\2 при этом если файл с таким именем уже существует в C:\2, то копирование происходит в C:\3. Было бы идеально если бы писался лог начала копирования и окончания копирования. Надеюсь на вашу помощь! Желательно на повершел.
|
$VMName ="скрипт"
$log ="C:\Scripts\logs\" + $VMName+ ".log" $data = Get-Date -Format "dddd MM/dd/yyyy HH:mm" $VMName+" --- START --- "+$data >> $log if (-not (Test-Path -Path "\\it9\MSI\*")) { Copy-Item -Path "C:\дворф\*" -Destination "\\it9\MSI\" -Recurse -Force -Verbose } else { Copy-Item -Path "C:\дворф\*" -Destination "C:\1" -Recurse -Force -Verbose } #=================================== $data = Get-Date -Format "dddd MM/dd/yyyy HH:mm" $VMName+" --- FINISH --- "+$data >> $log |
Цитата:
Вообще, условия в задаче не совсем полные. Цитата:
1. Не копировать совсем. 2. Копировать с переименованием в C:\2 3. Копировать с переименованием в C:\3 И ещё: зачем вести лог копирования, если по Вашим условиям, файл может быт скопирован только два раза, то бишь, для чего такая автоматизация? |
Цитата:
Простите пожалуйста за столь долгий ответ. Т.к. я вообще не бум бум в написании скриптов и пришлось учиться самостоятельно. В итоге я переделал скрипт и выглядит он вот так: #---задаем имя машины и каталоги резервного копирования, каталог логирования, записываем время начала. Недельный!!!! $VMName ="Chili" $log ="C:\Scripts\logs\" + $VMName+ ".log" $data = Get-Date -Format "dddd MM/dd/yyyy HH:mm" $VMName+" --- START --- "+$data >> $log #Путь к папке (конечная) $papka1 = "\\backup\e$\Chili" $papka2 = "\\nautilus\e$\Chili" #Источник $istochnik = "\\0,0,0,0\backup\" #Выбор папки по последним датам (конечная) $IshDate1 = (Get-Item \\backup\e$\Chili).LastWriteTime -le (Get-Item \\nautilus\e$\Chili).LastWriteTime $IshDate2 = (Get-Item \\backup\e$\Chili).LastWriteTime -ge (Get-Item \\nautilus\e$\Chili).LastWriteTime if ($IshDate1 -ne "True" -and $IshDate2 -eq "True") { robocopy "$istochnik" "$papka2" /MIR #делаем синхронизацию } elseif ($IshDate1 -eq "True" -and $IshDate2 -ne "True") { robocopy "$istochnik" "$papka1" /MIR } elseif ($IshDate1 -eq "True" -and $IshDate2 -eq "True") { robocopy "$istochnik" "$papka1" /MIR } elseif ($IshDate1 -ne "True" -and $IshDate2 -ne "True") { robocopy "$istochnik" "$papka1" /MIR } #=================================== $data = Get-Date -Format "dddd MM/dd/yyyy HH:mm" $VMName+" --- FINISH --- "+$data >> $log |
данный скрип рабочий и применяется на работе.
|
Время: 00:46. |
Время: 00:46.
© OSzone.net 2001-