![]() |
Out-File -избежать создания пустого файла
Добрый день.
Имеется текстовый файл, каждая строка начинается с "1;№телефона;*". Задача проверить на соответствие маске "79*********" и записать в лог-файл, если есть некорректные телефоны Код:
$bird=$null Если строка НЕ содержит некорректный №тел - создается пустой файл 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
Цитата:
|
Наверное, так:
Код:
$right,$wrong = (gc D:\temp\ext.txt).trim().where({$_ -match "^?;79\d{9};"}, 'Split') |
Цитата:
Совпадает, если начало строки ноль или один, за которым следует точка с запятой, за ней сразу же следует символ семь, затем девять, за ней девять любых цифр и точка с запятой - Цитата:
Код:
if ($a = (sls ext.txt -patt '^[^;]*;\s*79\d{9}' -not -enc default)){$a.line.trim()|out-file error.txt -enc default} |
Цитата:
За комментарий спасибо, изучу. DJ Mogarych, Спасибо |
Цитата:
Код:
^? |
Время: 11:22. |
Время: 11:22.
© OSzone.net 2001-