|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - вывод информации через цикл |
|
PowerShell - вывод информации через цикл
|
Пользователь Сообщения: 102 |
Профиль | Отправить PM | Цитировать Кусок скрипта выводит информацию о 5 последних обработанных файлах. Но вот реализация меня не устраивает.
Как правильно сделать вывод информации? через While? т.е. если я например захочу видеть информацию о 15 последних объектах? activation - счетчик срабатываний скрипта AText - собственно информация для отображения, которая меняется после каждого срабатывания activation++ if ($activation -eq 1) {$AText1 = "$activation`t$DocTypeRus`t$CadastralNumber"} if ($activation -eq 2) {$AText2 = "$activation`t$DocTypeRus`t$CadastralNumber"} if ($activation -eq 3) {$AText3 = "$activation`t$DocTypeRus`t$CadastralNumber"} if ($activation -eq 4) {$AText4 = "$activation`t$DocTypeRus`t$CadastralNumber"} if ($activation -ge 5) { #тут больше или равно! $AText1 = $AText2 $AText2 = $AText3 $AText3 = $AText4 $AText4 = $AText5 $AText5 = "$activation`t$DocTypeRus`t$CadastralNumber" } if ($activation -ne 0) { Write-Host "последние 5:" Write-Host "-----------------------------" if ($AText1 -ne $null) {Write-Host "$AText1"} if ($AText2 -ne $null) {Write-Host "$AText2"} if ($AText3 -ne $null) {Write-Host "$AText3"} if ($AText4 -ne $null) {Write-Host "$AText4"} if ($AText5 -ne $null) {Write-Host "$AText5"} Write-Host "-----------------------------" } |
|
Отправлено: 12:19, 30-03-2015 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать |
Отправлено: 12:38, 30-03-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 102
|
Профиль | Отправить PM | Цитировать Цитата Kazun:
информация выводиться не после выполнения скрипта, а в процессе т.к. скрипт запущен все время и мониторит определенную папку. получается что обработав 1 файл записали в переменную, обработав следующий записали в переменную+1...дошли до определенного значения и заменили значение в первой переменной. получается в моем коде имеем 5 последних значений. приведу весь код чтоб было понятней сам скрипт
Set-ExecutionPolicy remotesigned #-->Описываем все переменные блока # пути: $PathPrefix = "D:\test" # повторяющийся элемент пути #$PathPrefix = "\\serv\Otdely\ZUR\ГКН" # повторяющийся элемент пути $PathIn = "$PathPrefix" # каталог, откуда брать ZIP файлы $PathOut = "$PathPrefix" # каталог, куда помещаем результат работы скрипта $PathBase = "$PathPrefix\base" # каталог, где расположены файлы базы # задаем дату и время: $d=get-date -uformat "%Y-%m-%d" $t=get-date -uformat "%H:%M" # имя пользователя: (а надо ли?) $UserName = "$env:username" $ErrorSleep = "5" # количество срабатываний $activation=0 $watcher_start_d = get-date -uformat "%Y-%m-%d" $watcher_start_t = get-date -uformat "%H:%M" #<--Описываем все переменные блока #---#------------------------------------------------------------------------------------------------------- #-->Функция форматирования строки в екселе function Excel_format_1 { $lineStyle = "microsoft.office.interop.excel.xlLineStyle" -as [type] $colorIndex = "microsoft.office.interop.excel.xlColorIndex" -as [type] #---по центру, рамка, выделить жирным $selection.Interior.ColorIndex = 40 $selection.VerticalAlignment = -4108 #по центру $selection.HorizontalAlignment = -4108 #по центру # Выделяем таблицу (рамка) $selection.borders.LineStyle = $lineStyle::xlContinuous $selection.borders.ColorIndex = $colorIndex::xlColorIndexAutomatic # Разукрашиваем $selection.Font.Size = 12 $selection.Font.ColorIndex = 55 $selection.Font.Color = 8210719 # Выделяем жирным $selection.Font.Bold = $true # Ровняем ширину столбцов $UsedRange = $ws.UsedRange $UsedRange.EntireColumn.AutoFit() | Out-Null } function Excel_format_2 { $lineStyle = "microsoft.office.interop.excel.xlLineStyle" -as [type] $colorIndex = "microsoft.office.interop.excel.xlColorIndex" -as [type] #---по центру, по лево $selection.VerticalAlignment = -4108 #по центру $selection.HorizontalAlignment = -4131 #по лево # Ровняем ширину столбцов $UsedRange = $ws.UsedRange $UsedRange.EntireColumn.AutoFit() | Out-Null } #--<Функция форматирования строки в екселе #-->Функция лога перемещений function moves_log { $ex = new-object -com Excel.Application $wb = $ex.Workbooks.Open("$PathOut\moves_log.xlsx") $ws = $wb.Worksheets.Item(1) $Row = $ws.Range("A65536").End(-4162).Row + 1 # Заполняем $ws.Cells.Item($Row,1) = $d $ws.Cells.Item($Row,2) = $t $ws.Cells.Item($Row,3) = $FileZipCurrent.name $ws.Cells.Item($Row,4) = $DocTypeRus $ws.Cells.Item($Row,5) = $CadastralNumber $ws.Cells.Item($Row,6) = $DateCreateDoc $ws.Cells.Item($Row,7) = $FileXmlCurrent.name $ws.Cells.Item($Row,8) = "->" $ws.Cells.Item($Row,9) = "`=ГИПЕРССЫЛКА(`"$OutPath`";`"$OutPath`")" $ws.Cells.Item($Row,10) = $OutName # Оформляем $selection = $ws.Range(("A{0}" -f $Row),("J{0}" -f $Row)) #$selection.Select() | Out-Null Excel_format_2 # закрываем $selection = $null $wb.Save() $wb.Close() $ex.Quit() } #--<Функция лога перемещений #-->Функция лога ошибок function error_log { $ex = new-object -com Excel.Application $wb = $ex.Workbooks.Open("$PathOut\moves_log.xlsx") $ws = $wb.Worksheets.Item(2) $Row = $ws.Range("A65536").End(-4162).Row + 1 # Заполняем $ws.Cells.Item($Row,1) = $d $ws.Cells.Item($Row,2) = $t $ws.Cells.Item($Row,3) = $FileXmlCurrent.name $ws.Cells.Item($Row,4) = $ErrorText $ws.Cells.Item($Row,5) = $ErrorAction # Оформляем $selection = $ws.Range(("A{0}" -f $Row),("E{0}" -f $Row)) #$selection.Select() | Out-Null Excel_format_2 # закрываем $selection = $null $wb.Save() $wb.Close() $ex.Quit() } #--<Функция лога ошибок #-->создаем функцию для известного документа, но не известной версии (не описанной в скрипте) function NoDocVers { if (!(test-path "$PathOut\проблемные\$DocTypeRus\$DocVers\")) { new-item -path $PathOut -name "проблемные\$DocTypeRus\$DocVers" -type directory -force | Out-Null } if (!(test-path "$PathOut\проблемные\$DocTypeRus\$DocVers\$($FileXmlCurrent.name)")) { move-item -path "$FileXmlCurrent" -destination "$PathOut\проблемные\$DocTypeRus\$DocVers" } else { rename-item -path "$FileXmlCurrent" -newname "$($FileXmlCurrent.name)`.ОШИБКА" } } #--<создаем функцию для известного документа, но не известной версии (не описанной в скрипте) #---#------------------------------------------------------------------------------------------------------- #---#------------------------------------------------------------------------------------------------------- #-->Если таблицы нет, создаем if (!(test-path "$PathOut\moves_log.xlsx")) { #-->Первый лист $ex = New-Object -Com Excel.Application $wb = $ex.Workbooks.Add() $ws = $wb.Worksheets.Item(1) $ws.Name = 'ОТЧЕТ' $Row=1 # Заполняем $ws.Cells.Item($Row,1) = "дата" $ws.Cells.Item($Row,2) = "время" $ws.Cells.Item($Row,3) = "имя архива" $ws.Cells.Item($Row,4) = "тип документа" $ws.Cells.Item($Row,5) = "кадастровый номер" $ws.Cells.Item($Row,6) = "актуальность" $ws.Cells.Item($Row,7) = "исходный файл" $ws.Cells.Item($Row,8) = "->" $ws.Cells.Item($Row,9) = "новое хранилище" $ws.Cells.Item($Row,10) = "новое имя" # Оформляем $selection = $ws.Range(("A{0}" -f $Row),("J{0}" -f $Row)) #$selection.Select() | Out-Null Excel_format_1 #-->Второй лист $ws = $wb.Worksheets.Item(2) $ws.Name = 'ОШИБКИ' $Row=1 # Заполняем $ws.Cells.Item($Row,1) = "дата" $ws.Cells.Item($Row,2) = "время" $ws.Cells.Item($Row,3) = "имя файла" $ws.Cells.Item($Row,4) = "текст ошибки" $ws.Cells.Item($Row,5) = "что надо сделать?" # Оформляем $selection = $ws.Range(("A{0}" -f $Row),("E{0}" -f $Row)) #$selection.Select() | Out-Null Excel_format_1 $selection = $null $wb.SaveAs("$PathOut\moves_log.xlsx") $wb.Close() $ex.Quit() } #--<Если таблицы нет, создаем #---#------------------------------------------------------------------------------------------------------- #-->Наблюдатель за папкой. при появлении файла, обрабатывает его: while($TRUE){ Clear-Host Write-Host "наблюдаем с`t$watcher_start_d $watcher_start_t" Write-Host "срабатываний`t$activation" if ($activation -ne 0) { Write-Host "последние 5:" Write-Host "-----------------------------" Write-Host '$AText1' "$AText1" Write-Host '$AText2' "$AText2" Write-Host '$AText3' "$AText3" Write-Host '$AText4' "$AText4" Write-Host '$AText5' "$AText5" if ($AText1 -ne $null) {Write-Host "$AText1"} if ($AText2 -ne $null) {Write-Host "$AText2"} if ($AText3 -ne $null) {Write-Host "$AText3"} if ($AText4 -ne $null) {Write-Host "$AText4"} if ($AText5 -ne $null) {Write-Host "$AText5"} Write-Host "-----------------------------" } Remove-Variable FilesZip,FilesXml -ErrorAction SilentlyContinue $FilesZip = Get-ChildItem $PathIn\* -Include *.zip $FilesXml = Get-ChildItem $PathIn\* -Include *.xml # шапка $WinTitle=(get-host).UI.RawUI $WinTitle.WindowTitle="XML-ГКН ($activation)" if (($FilesZip -eq $null) -and ($FilesXml -eq $null)) { start-sleep 5 # задержка перед следующим проходом continue } else { #--> старт основному файлу Clear-Host #---#------------------------------------------------------------------------------------------------------- #-->Обработка архивов # получаем объекты переменную $FilesZip #$FilesZip = Get-ChildItem $PathIn\* -Include *.zip if ($FilesZip -ne $null) { Remove-Variable FileZipCurrent_count,FilesZip_count -ErrorAction SilentlyContinue ForEach ($FileZipCurrent in $FilesZip) { #каждое значение $FilesZip делаем с $FileZipCurrent: if ($FilesZip.count -ge "2") { #проверка на пустое значение (если 1 файл, то не записывается) $FilesZip_count = $FilesZip.count } else { $FilesZip_count = 1 } $FileZipCurrent_count++ #--> #---Основоное действо---# # извлекаем из архива: $PathZip="$PathIn\" [string]$zipfilename = $FileZipCurrent [string]$destination = $PathZip if(test-path($FileZipCurrent)) { $shellApplication = new-object -com shell.application $zipPackage = $shellApplication.NameSpace($zipfilename) $destinationFolder = $shellApplication.NameSpace($destination) $destinationFolder.CopyHere($zipPackage.Items()) } # удаляем архив: Remove-Item "$FileZipCurrent" #---#------------------------------------------------------------------------------------------------------- #-->Обработка xml $FilesXml = Get-ChildItem $PathIn\* -Include *.xml if ($FilesXml -ne $null) { Remove-Variable FileXmlCurrent_count,FilesXml_count -ErrorAction SilentlyContinue ForEach ($FileXmlCurrent in $FilesXml) { # каждое значение $FilesXml делаем с $FileXmlCurrent: Remove-Variable ErrorCode,ErrorText,ErrorAction -ErrorAction SilentlyContinue Remove-Variable DocNumber,DateCreateDoc,CadastralNumber,Cad_Region,Cad_Rayion,Cad_Kvartal,Region,Rayion -ErrorAction SilentlyContinue Remove-Variable DocType,DocVers,OutPath,OutName -ErrorAction SilentlyContinue if ($FilesXml.count -ge "2") { # Проверка на пустое значение (если 1 файл, то не записывается) $FilesXml_count = $FilesXml.count } else { $FilesXml_count = 1 } $FileXmlCurrent_count++ Clear-Host Write-Host "обрабатываем zip файл: $FileZipCurrent_count из $FilesZip_count `t($($FileZipCurrent.name))" Write-Host "обрабатываем xml файл: $FileXmlCurrent_count из $FilesXml_count `t($($FileXmlCurrent.name))" Write-Host "-------------------------------------------------------------------------------" #--> #---Основоное действо---# $oXmlDocument = New-Object -TypeName System.Xml.XmlDocument # создаем новый объект как xml $oXmlDocument.load($FileXmlCurrent) # загружаем текущий файл в переменную обработки $DocType = $oXmlDocument."xml-stylesheet".split("/")[6] $DocVers = $oXmlDocument."xml-stylesheet".split("/")[7] if ($DocType -ne $null) { # тип документа из второй строки xml Switch ($DocType) { # пройдемся по известным типам документов KPT { # КПТ $DocTypeRus = "КПТ" Write-Host "тип документа:" `t`t $DocTypeRus Switch ($DocVers) { # пройдемся по известным версиям документа (начал с 9, остальные старые) "09" { # https://portal.rosreestr.ru/xsl/GKN/KPT/09/common.xsl Write-Host "версия документа:" `t $DocVers $KPT_count++ # получаем значения в переменные #-------------------------------------------------------------- $DocNumber = $oXmlDocument.KPT.CertificationDoc.Number $DateCreateDoc = $oXmlDocument.KPT.CertificationDoc.Date $CadastralNumber = $oXmlDocument.KPT.CadastralBlocks.CadastralBlock.CadastralNumber # ---------------------------------------------------------------------------------------------- $CadastralNumber = $CadastralNumber -replace " " # убираем пробелы в кадастровом номере # разбить кадастровый номер на подстроки по ":" в итоге имеем следующие переменные: $Cad_Region = $CadastralNumber.split(":")[0] $Cad_Rayion = $CadastralNumber.split(":")[1] $Cad_Kvartal = $CadastralNumber.split(":")[2] # загрузим регионы в массив: if (test-path "$PathBase\regions.txt") { $BaseRegions = Get-Content "$PathBase\regions.txt" | %{ConvertFrom-StringData -StringData $_} $Region = $BaseRegions[$Cad_Region]."r$Cad_Region" # регион Русскми буквами $Region (значение [строки] после "rРЕГИОН=") } else { $ErrorCode = "04-01" $ErrorText = "отсутствует перечень регионов" $ErrorAction = "поместите файл regions.txt в каталог $PathPrefix\base" error_log ($d,$t,$FileXmlCurrent.name,$ErrorText,$ErrorAction) break } # загрузим районы в массив: if (test-path "$PathBase\$Cad_Region`_rayion.txt") { $BaseRayions = Get-Content "$PathBase\$Cad_Region`_rayion.txt" | %{ConvertFrom-StringData -StringData $_} $Rayion = $BaseRayions[$Cad_Rayion]."r$Cad_Rayion" # район Русскми буквами $Rayion # каталог и имя файла-результата: $OutPath = "$PathOut\$Cad_Region $Region\$Cad_Region-$Cad_Rayion $Rayion\$Cad_Region-$Cad_Rayion-$Cad_Kvartal" $OutName = "$DocTypeRus на $Cad_Region`-$Cad_Rayion`-$Cad_Kvartal от $DateCreateDoc`.xml" } else { $ErrorCode = "04-02" $ErrorText = "отсутствует перечень районов по $Cad_Region региону ($Region)" $ErrorAction = "поместите файл $Cad_Region`_rayion.txt в каталог $PathPrefix\base" error_log ($d,$t,$FileXmlCurrent.name,$ErrorText,$ErrorAction) break } } # закончили с 9 версией КПТ Default { # что делать, когда версия КПТ не описана Write-Host "версия документа:" `t $DocVers $ErrorCode = "03-01" $ErrorText = "$DocVers версия $DocTypeRus не может быть обработана" $ErrorAction = "сообщить разработчику о данной проблеме" error_log ($d,$t,$FileXmlCurrent.name,$ErrorText,$ErrorAction) moves_log ($d,$t,$FileZipCurrent.name,$DocTypeRus,$DateCreateDoc,$FileXmlCurrent.name,$OutPath,$OutName) NoDocVers ($DocTypeRus,$DocVers,$FileXmlCurrent) break } # закончили с вариантом, когда версия КПТ не описана } # закончили с проходом по версиям КПТ } # закончили с КПТ Vidimus { # выписка $DocTypeRus = "КВЗУ" Write-Host "версия документа:" `t $DocVers Switch ($DocVers) { "03" { # https://portal.rosreestr.ru/xsl/GKN/Vidimus/03/common.xsl совпадает с 4 Write-Host "" } } # закончили с 9 версией КПТ Default { # что делать, когда версия КПТ не описана Write-Host "" } } Default { # что делать, когда тип документа не описан $ErrorCode = "02-01" $ErrorText = "тип документа $DocType не может быть обработан" $ErrorAction = "сообщить разработчику о данной проблеме" error_log ($d,$t,$FileXmlCurrent.name,$ErrorText,$ErrorAction) rename-item -path "$FileXmlCurrent" -newname "$($FileXmlCurrent.name)`.ОШИБКА" break } } # закончили с проходом по типам документов } else { # не удалось определить тип документа $ErrorCode = "01-01" $ErrorText = "не удалось определить тип документа" $ErrorAction = 'в xml вторая строка должна начинаться с <?xml-stylesheet type="text/xsl" href="' error_log ($d,$t,$FileXmlCurrent.name,$ErrorText,$ErrorAction) break } #-->выше обработка xml ниже перемещение # #-->Описываем переменные полученные в результате работы<-----# # # # $FileXmlCurrent обрабатываемый xml файл # # # # $ErrorCode код ошибки # # $ErrorText # # $ErrorAction # # # # $Cad_Region кадастровый регион цифрами # # $Cad_Rayion кадастровый район цифрами # # $Cad_Kvartal кадастровый квартал цифрами # # $CadastralNumber кадастровый номер цифрами полностью # # # # $Region регион буквами # # $Rayion район буквами # # # # $OutPath сформированный путь # # $OutName сформированное имя # # # #<--Описываем переменные полученные в результате работы-----># # if ($ErrorCode -ne $null) { # если ошибки были Write-Host "-----------------------------------------" Write-Host "в процессе обработки xml возникла ошибка:" Write-Host "-----------------------------------------" Write-Host "Код ошибки:" `t ErrorCode Write-Host "Текст:" `t`t $ErrorText Write-Host "Действие:" `t $ErrorAction msg $UserName /TIME:9000 "$ErrorText" start-sleep $ErrorSleep } else { # если ошибок не было # если не было не опознанных версий #-->выводим информацию на экран msg $UserName /TIME:9000 "$DocTypeRus ($DocVers) $CadastralNumber" ###############------------------------------------------------------------------------------------# if ($DocNumber -ne $null) {Write-Host "номер документа:" `t $DocNumber} if ($DateCreateDoc -ne $null) {Write-Host "дата формирования:" `t $DateCreateDoc} if ($CadastralNumber -ne $null) {Write-Host "кадастровый номер:" `t $CadastralNumber} if ($Region -ne $null) {Write-Host "регион:" `t `t $Region} if ($Rayion -ne $null) {Write-Host "район:" `t `t `t $Rayion} ###############------------------------------------------------------------------------------------# #-->перемещаем: if (!(test-path "$OutPath")) { # проверка на существование каталога new-item -path $OutPath -type directory -force | Out-Null } if (!(test-path "$OutPath\$OutName")) { # проверка на существование файла в каталоге назначения, если пусто: move-item -path "$FileXmlCurrent" -destination "$OutPath\$OutName" moves_log if (test-path "$FileXmlCurrent`.sig") { # проверка на наличие цифровой подписи Write-Host "цифровая подпись: `t есть" move-item -path "$FileXmlCurrent`.sig" -destination "$OutPath\$OutName`.sig" # moves_log ($OutName = "$OutName`.sig") } # делаем файлы с координатами и ОСМ if (($DocTypeRus -eq "КПТ") -and ($DocVers -eq "09") -and ($($FileXmlCurrent.Length / 1Mb) -ge 5)) { Write-Host "" Write-Host "делаем файл с координатами" $Sek=(Measure-Command { $FileOutCSV = "$OutPath\Координаты к $DocTypeRus на $Cad_Region`-$Cad_Rayion`-$Cad_Kvartal от $DateCreateDoc`.csv" # заполним заголовок "кадастровый номер;номер точки;X;Y;погрешность" | Out-File -FilePath $FileOutCSV -Encoding 'default' "1;2;3;4;5" | Out-File -Append -FilePath $FileOutCSV -Encoding 'default' $StrokKoordinat=0 $oXmlDocument.KPT.CadastralBlocks.CadastralBlock.Parcels.Parcel |` ForEach-Object -Process { $CadNumUch = $_.CadastralNumber $_.EntitySpatial.SpatialElement.SpelementUnit |` ForEach-Object -Process { if ($_.SuNmb -ne $null) { $StrokKoordinat++ "$CadNumUch;$($_.SuNmb);$($_.Ordinate.X -replace "\.",",");$($_.Ordinate.Y -replace "\.",",");$($_.Ordinate.DeltaGeopoint -replace "\.",",")"` | Out-File -Append -FilePath $FileOutCSV -Encoding 'default' } } } }).TotalSeconds # всего секунд + сколько обработано строк Write-Host "--------------------------" Write-Host "секунд потрачено:" `t $Sek Write-Host "строк обработано:" `t $StrokKoordinat start-sleep $ErrorSleep Write-Host "создан файл:"`t`t"Координаты к $DocTypeRus на $Cad_Region`-$Cad_Rayion`-$Cad_Kvartal от $DateCreateDoc`.csv" # делаем файл с ОМС if ($oXmlDocument.KPT.CadastralBlocks.CadastralBlock.OMSPoints.OMSPoint) { Write-Host "" Write-Host "делаем файл с ОМС" $Sek=(Measure-Command { $FileOutCSV = "$OutPath\ОМС к $DocTypeRus на $Cad_Region`-$Cad_Rayion`-$Cad_Kvartal от $DateCreateDoc`.csv" # заполним заголовок "Номер пункта опорной межевой сети на плане;Название и (или) номер, тип пункта опорной межевой сети;Класс опорной межевой сети;X;Y" | Out-File -FilePath $FileOutCSV -Encoding 'default' "1;2;3;4;5" | Out-File -Append -FilePath $FileOutCSV -Encoding 'default' $StrokOMS=0 $oXmlDocument.KPT.CadastralBlocks.CadastralBlock.OMSPoints.OMSPoint |` ForEach-Object -Process { $StrokOMS++ "$($_.PNmb);$($_.PName -replace ";"," ");$($_.PKlass -replace ";"," ");$($_.OrdX -replace "\.",",");$($_.OrdY -replace "\.",",")"` | Out-File -Append -FilePath $FileOutCSV -Encoding 'default' } }).TotalSeconds # всего секунд + сколько обработано строк Write-Host "--------------------------" Write-Host "секунд потрачено:" `t $Sek Write-Host "строк обработано:" `t $StrokOMS Write-Host "создан файл:"`t`t"ОМC к $DocTypeRus на $Cad_Region`-$Cad_Rayion`-$Cad_Kvartal от $DateCreateDoc`.csv" start-sleep $ErrorSleep } } } else { #-->если занято Write-Host "обратите внимание: такой файл уже имеется" -ForegroundColor Yellow if (!(test-path "$PathOut\повторы")) { new-item -path "$PathOut\повторы" -type directory -force | Out-Null } Remove-Variable Flag_ReName,NamePlus -ErrorAction SilentlyContinue $NamePlus=1 $OutNamePovtor = $OutName.Substring(0,($OutName.Length -4)) # срезаем 4 символа с конца While ($Flag_ReName -eq $null) { # пока флаг пустой проверяем существование файла и добавляем 1 к NamePlus if (!(test-path "$PathOut\повторы\$OutNamePovtor ($NamePlus)`.xml")) { $OutPath = "$PathOut\повторы\" $OutName = "$OutNamePovtor ($NamePlus)`.xml" $Flag_ReName=$NamePlus move-item -path "$FileXmlCurrent" -destination "$OutPath\$OutName" moves_log if (test-path "$FileXmlCurrent`.sig") { $OutName = "$OutNamePovtor ($NamePlus)`.xml`.sig" move-item -path "$FileXmlCurrent`.sig" -destination "$OutPath\$OutName" } } else { $NamePlus++ } } } # /закончили с перемещением } #-->выше перемещение xml ниже завершение # #-->Описываем переменные полученные в результате работы<-----# # # # $FileXmlCurrent обрабатываемый xml файл # # # # $ErrorCode код ошибки # # $ErrorText # # $ErrorAction # # # # $OutPath сформированный путь # # $OutName сформированное имя # # # #<--Описываем переменные полученные в результате работы-----># # $FilesEach++ Write-Host "-----------------------------------------" Write-Host "ищем следующий файл..." Write-Host "" start-sleep 1 } # каждое значение $FilesXml делаем с $FileXmlCurrent: } else { Write-Host "не найдены xml-файлы. выход..." -ForegroundColor Yellow start-sleep $ErrorSleep } }#<--Обработка xml } else { Write-Host "не найдены zip-архивы. выход..." -ForegroundColor Yellow start-sleep $ErrorSleep }#<--Обработка архивов read-host "конец" $activation++ if ($activation -eq 1) {$AText1 = "$activation`t$DocTypeRus`t$CadastralNumber"} if ($activation -eq 2) {$AText2 = "$activation`t$DocTypeRus`t$CadastralNumber"} if ($activation -eq 3) {$AText3 = "$activation`t$DocTypeRus`t$CadastralNumber"} if ($activation -eq 4) {$AText4 = "$activation`t$DocTypeRus`t$CadastralNumber"} if ($activation -eq 5) {$AText5 = "$activation`t$DocTypeRus`t$CadastralNumber"} if ($activation -gt 5) { $AText1 = $AText2 $AText2 = $AText3 $AText3 = $AText4 $AText4 = $AText5 $AText5 = "$activation`t$DocTypeRus`t$CadastralNumber" } } } #/закончили со срабатыванием на файл в $ZipPath |
|
Отправлено: 13:43, 30-03-2015 | #3 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Т.к. в коде уже есть while, зачем плодить непонятные переменные:
|
Отправлено: 13:58, 30-03-2015 | #4 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBS/WSH/JS - [решено] Вывод информации о ПК по сети | Rusya89 | Скриптовые языки администрирования Windows | 1 | 19-02-2015 15:36 | |
CMD/BAT - Как в .bat сделать вывод информации правах? | Eugene Shugaev | Скриптовые языки администрирования Windows | 4 | 12-03-2014 11:55 | |
C/C++ - Подсчёт количества слов в строке через цикл | pashazt | Программирование и базы данных | 3 | 16-12-2012 10:54 | |
Вывод информации из MySQL | Moon Mag | Вебмастеру | 12 | 09-01-2009 18:44 | |
Вывод информации на двух мониторах | Guest | Программирование и базы данных | 1 | 26-07-2004 15:39 |
|