epoddubniy
03-08-2021, 16:46
Здравствуйте.
Дано условие: если день запуска скрипта попадает в промежуток с 25 по 31, то из соответствующего каталога диска Е: в соответствующий каталог диска D: копируются файлы (созданные вчера) с добавлением даты в конец файла.
Каталогов из которых/в которые будут копироваться файлы - много, но для каждого из них написан код
Попытался объединить это в один сплошной но код выдает ошибку.
$Data=Get-Date -Format "dd.MM.yyyy"
$CurrentDay=get-date -format "dd"
#скрипт исполнялся 3 его числа. Грешу, что ошибка где-то в сравнении. Значении переменной $CurrentDay получается равным "03", а сравнивается с 2 и 4
if (($CurrentDay -ge 2) -and ($CurrentDay -lt 4) {
Get-ChildItem "E:\folder1" -Recurse | where-object {$_.creationtime -lt (get-date).date.adddays(1) -and $_.creationtime -ge (get-date).date.adddays(0)} | `ForEach-Object -Process {
Write-Host "$($_.FullName)`t→`D:\folder1\$($Data)_$($_.BaseName)"
Copy-Item -Path $_.FullName -Destination "D:\folder1\$($_.BaseName)_$Data.adi"
}, Get-ChildItem "E:\folder2\Резервная копия диска" -Recurse | where-object {$_.creationtime -lt (get-date).date.adddays(1) -and $_.creationtime -ge (get-
date).date.adddays(0)} | `ForEach-Object -Process {
Write-Host "$($_.FullName)`t→`D:\folder2\$($Data)_$($_.BaseName)"
Copy-Item[ -Path $_.FullName -Destination "D:\folder2\$($_.BaseName)_$Data.adi"
}
}
P.S. Была мысль для каждой пары каталогов копирования "из/в" сделать свой отдельный файл с расширением .ps1, но я так и не нашел информации, как запускать скрипты друг за дружкой в powershell из командного файла
Помогите пожалуйста реализовать идею, найти ошибки, исправить код
СПАСИБО!
Дано условие: если день запуска скрипта попадает в промежуток с 25 по 31, то из соответствующего каталога диска Е: в соответствующий каталог диска D: копируются файлы (созданные вчера) с добавлением даты в конец файла.
Каталогов из которых/в которые будут копироваться файлы - много, но для каждого из них написан код
Попытался объединить это в один сплошной но код выдает ошибку.
$Data=Get-Date -Format "dd.MM.yyyy"
$CurrentDay=get-date -format "dd"
#скрипт исполнялся 3 его числа. Грешу, что ошибка где-то в сравнении. Значении переменной $CurrentDay получается равным "03", а сравнивается с 2 и 4
if (($CurrentDay -ge 2) -and ($CurrentDay -lt 4) {
Get-ChildItem "E:\folder1" -Recurse | where-object {$_.creationtime -lt (get-date).date.adddays(1) -and $_.creationtime -ge (get-date).date.adddays(0)} | `ForEach-Object -Process {
Write-Host "$($_.FullName)`t→`D:\folder1\$($Data)_$($_.BaseName)"
Copy-Item -Path $_.FullName -Destination "D:\folder1\$($_.BaseName)_$Data.adi"
}, Get-ChildItem "E:\folder2\Резервная копия диска" -Recurse | where-object {$_.creationtime -lt (get-date).date.adddays(1) -and $_.creationtime -ge (get-
date).date.adddays(0)} | `ForEach-Object -Process {
Write-Host "$($_.FullName)`t→`D:\folder2\$($Data)_$($_.BaseName)"
Copy-Item[ -Path $_.FullName -Destination "D:\folder2\$($_.BaseName)_$Data.adi"
}
}
P.S. Была мысль для каждой пары каталогов копирования "из/в" сделать свой отдельный файл с расширением .ps1, но я так и не нашел информации, как запускать скрипты друг за дружкой в powershell из командного файла
Помогите пожалуйста реализовать идею, найти ошибки, исправить код
СПАСИБО!