solonenko
04-03-2020, 15:20
Добрый день.
Имеется текстовый файл, каждая строка начинается с "1;№телефона;*". Задача проверить на соответствие маске "79*********" и записать в лог-файл, если есть некорректные телефоны
$bird=$null
$stringnew=$null
$stringnew = (Get-Content "C:\fb\EXT.txt").Trim() #читаем файл - отрезаем возможные пробелы
foreach ($bird in $stringnew) { #проверяем в цикле каждую строку на корректность номера
if ($bird -notmatch '^?;79\d{9};') #шаблон
{
"Ошибка шаблона;"+$bird | Out-File -FilePath c:\fb\EXT_ERROR_PHONE.txt -Append #если не соответствует маске - в эррор-файл
}
else
{
$bird | Out-File -FilePath C:\fb\EXT_OUT.txt -Append #если соответствует маске - в работу
}
}
Если строка содержит некорректный №тел - создается файл -все ок.
Если строка НЕ содержит некорректный №тел - создается пустой файл EXT_ERROR_PHONE.txt
Как этого избежать
p\s
(Get-Content "C:\fb\EXT_.txt").Trim() | Where-Object {$_ -notmatch '^?;79\d{9};'} | Out-File c:\fb\EXT_ERROR_PHONE.txt
Та же история, пустой файл есть (а он мне не нужен). Подозреваю - причина одна...
*Set-Content также себя ведет
Имеется текстовый файл, каждая строка начинается с "1;№телефона;*". Задача проверить на соответствие маске "79*********" и записать в лог-файл, если есть некорректные телефоны
$bird=$null
$stringnew=$null
$stringnew = (Get-Content "C:\fb\EXT.txt").Trim() #читаем файл - отрезаем возможные пробелы
foreach ($bird in $stringnew) { #проверяем в цикле каждую строку на корректность номера
if ($bird -notmatch '^?;79\d{9};') #шаблон
{
"Ошибка шаблона;"+$bird | Out-File -FilePath c:\fb\EXT_ERROR_PHONE.txt -Append #если не соответствует маске - в эррор-файл
}
else
{
$bird | Out-File -FilePath C:\fb\EXT_OUT.txt -Append #если соответствует маске - в работу
}
}
Если строка содержит некорректный №тел - создается файл -все ок.
Если строка НЕ содержит некорректный №тел - создается пустой файл EXT_ERROR_PHONE.txt
Как этого избежать
p\s
(Get-Content "C:\fb\EXT_.txt").Trim() | Where-Object {$_ -notmatch '^?;79\d{9};'} | Out-File c:\fb\EXT_ERROR_PHONE.txt
Та же история, пустой файл есть (а он мне не нужен). Подозреваю - причина одна...
*Set-Content также себя ведет