Powershell в C# Windows Form
Михаил11 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
02.04.2024
Необходимо перекинуть рабочий код c powershell в c# WF, сделать мини ПО по нажатию на кнопку которое будет выполнять всё что делает ps.
try {
# Получаем текущую дату в формате "dd.MM.yyyy"
$todayDate = Get-Date -Format "dd.MM.yyyy"
# Указываем путь к целевой папке
$targetFolderPath = "C:\Users\11\Desktop\123"
# Проверка наличия указанной папки
if (!(Test-Path $targetFolderPath)) {
Write-Host "Указанная папка не существует."
pause
}
# Получаем список файлов с нужными именами в указанной папке и её подпапках
$files = Get-ChildItem -Path $targetFolderPath -Recurse | Where-Object { $_.Name -eq "ReadMe.txt" -or $_.Name -eq "VerInfo.txt" -or $_.Name -eq "Install.txt" -or $_.Name -eq "UpdInfo.txt" }
# Проверка наличия файлов для обновления
if ($files.Count -eq 0) {
Write-Host "В указанной папке нет файлов с заданными именами для обновления."
pause
}
# Указываем старую и новую версии для замены
$OldVersion = "3.0.32"
$OldVersion2 = "3_0_32"
$NewVersion = "3.0.33"
$NewVersion2 = "3_0_33"
# Папки, которые не нужно обрабатывать
$excludedFolders = @("Sources", "Protection", "ExtFiles", "КеуDB")
foreach ($file in $files) {
# Проверяем, находится ли файл в исключенных папках
$exclude = $false
foreach ($folder in $excludedFolders) {
if ($file.FullName -like "*\$folder\*") {
$exclude = $true
break
}
}
# Если файл находится в исключенной папке, пропускаем его
if ($exclude) {
continue
}
try {
# Получаем содержимое файла
$fileContent = Get-Content -Path $file.FullName -Raw -ErrorAction Stop
# Обновляем дату
$updatedContent = $fileContent -replace 'UpdateDate=\d{2}\.\d{2}\.\d{4}', "UpdateDate=$todayDate"
# Заменяем старые версии на новые
$updatedContent = $updatedContent -replace [regex]::Escape($OldVersion), $NewVersion
$updatedContent = $updatedContent -replace [regex]::Escape($OldVersion2), $NewVersion2
# Дополнительная замена для "FromVersions=;X.X.XX.1;" на "FromVersions=;$OldVersion.1;"
$updatedContent = $updatedContent -replace 'FromVersions=;(\d{1,}\.\d{1,}\.\d{1,}\.\d{1,});', "FromVersions=;$OldVersion.1;"
# Если содержимое файла было изменено, записываем обновленное содержимое обратно в файл
if ($fileContent -ne $updatedContent) {
$updatedContent | Set-Content -Path $file.FullName -ErrorAction Stop
Write-Host "Файл $($file.FullName) успешно обновлен"
}
else {
Write-Host "Файл $($file.FullName) не требует обновления."
}
} catch {
Write-Host "Произошла ошибка при обработке файла $($file.FullName): $_"
}
}
Write-Host "Операция выполнена успешно"
} catch {
Write-Host "Произошла ошибка: $_"
}
# Пауза для удержания окна консоли после выполнения скрипта
pause