Article-20147-MQL5-Terminal.../MetaQuotes/Scripts/UpdateDates.ps1
2026-03-26 17:44:46 +07:00

73 righe
Nessun fine linea
2,1 KiB
PowerShell

# Путь к конфигурационному файлу MetaTrader 5
$filePath = "C:\MetaQuotes\Scripts\ExpWPRBBconfig.ini"
# Базовое имя эксперта/отчета
$expertName = "ExpWPRBB"
# Путь для сохранения отчетов (относительно каталога данных MetaTrader 5, как в INI-файле)
$reportPathBase = "Reports\"
# Получаем первый аргумент, переданный скрипту
[string]$IntervalType = $args[0]
if ([string]::IsNullOrEmpty($IntervalType))
{
$IntervalType = 'Month'
}
$today = Get-Date
switch($IntervalType)
{
'Day'
{
$fromDate = $today.AddDays(-1)
Write-Host "Режим: Ежедневный (-1 день)"
}
'Week'
{
$fromDate = $today.AddDays(-7)
Write-Host "Режим: Еженедельный (-7 дней)"
}
'Month'
{
$fromDate = $today.AddMonths(-1)
Write-Host "Режим: Ежемесячный (-1 месяц)"
}
'Quarter'
{
$fromDate = $today.AddMonths(-3)
Write-Host "Режим: Ежеквартальный (-3 месяца)"
}
'Year'
{
$fromDate = $today.AddYears(-1)
Write-Host "Режим: Ежегодный (-1 год)"
}
default
{
$fromDate = $today.AddMonths(-1)
Write-Host "Режим по умолчанию: Ежемесячный (-1 месяц)"
}
}
# Форматируем даты: 1. дата начала 2. дата окончания
$fromDateString = $fromDate.ToString("yyyy.MM.dd")
$toDateString = $today.ToString("yyyy.MM.dd")
# Генерируем уникальное имя отчета, используя даты и интервал
$reportName = "${expertName}_${IntervalType}_${fromDateString}_to_${toDateString}"
$fullReportPath = $reportPathBase + $reportName
# Заменяем строки в файле (FromDate, ToDate и Report)
(Get-Content -Path $filePath) `
-replace '^FromDate=.*$', "FromDate=$fromDateString" `
-replace '^ToDate=.*$', "ToDate=$toDateString" `
-replace '^Report=.*$', "Report=$fullReportPath" | Set-Content -Path $filePath
# Выводим информацию в консоль для отладки
Write-Host "Даты и путь отчета в файле $filePath успешно обновлены."
Write-Host "FromDate установлен в $fromDateString"
Write-Host "ToDate установлен в $toDateString"
Write-Host "Report установлен в $fullReportPath"
#Для чтения сообщений раскомментировать строку ниже
#Read-Host -Prompt "Нажмите Enter для продолжения..."