powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Скрипт Powershell
7 сообщений из 7, страница 1 из 1
Скрипт Powershell
    #38550345
ioscat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть словарик в файле типа "Петров;Petrov", есть файлики, в которых надо произвести замену. В целом, всё работало, пока я не захотел выводить список необработанных соответствий (первый Foreach-Jbject).


$PathDir = "C:\temp\test2\"
$SourceDir = "C:\temp\test1\"
Copy-Item $($SourceDir+"*.RUX") $($PathDir+"Files\")

$DictFile = Get-Content $($PathDir+"Script\DimDict.txt")
ForEach ($Data in $DictFile)
{
$A,$B = $Data -split ';'
write-host "Первое: "$A
#write-host " Второе: "$B
$ListRuxFiles=get-childitem $($PathDir+"Files\*.RUX")
foreach ($RuxFile in $ListRuxFiles)
{
(Get-Content $RuxFile )|
Foreach-Object { IF ( $_ -match "$A[^',)A-z]"){Write-host $RuxFile,$_} } |
Foreach-Object { $_ -replace "\'$A\'", "'$B'" } |
Foreach-Object { $_ -replace "\!$A\,", "!$B," } |
Foreach-Object { $_ -replace "\!$A\)", "!$B)" } |
Set-Content $RuxFile
}
}

Отчего-то не работает всё после первого Foreach-Object, а если закомментировать его, то все остальные друг другу не мешают. Почему так может быть?
...
Рейтинг: 0 / 0
Скрипт Powershell
    #38550394
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
ioscat,

Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
foreach ($RuxFile in $ListRuxFiles)
 {
   GC $RuxFile | %{
       select-string ($A+ '[^]')  $_ | Write-Host
       (($_ -replace "\'$A\'", "'$B'" ) -replace "\!$A\,", "!$B,")  -replace "\!$A\)", "!$B)"
   }
 Set-Content $RuxFile
 }



первый обработчик у вас делает Write-Host и не выдает ничего в пайплайн - надо либо после write-host еще раз написать $_ (через ; ) либо как я написал
...
Рейтинг: 0 / 0
Скрипт Powershell
    #38550418
ioscat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, второй вариант сработал, я, правда, не очень понимаю, почему.
...
Рейтинг: 0 / 0
Скрипт Powershell
    #38550525
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
ioscat,


Вот этот кусок берет объект и не возвращает ничего:
Код: powershell
1.
Foreach-Object { IF ( $_ -match "$A[^',)A-z]"){Write-host $RuxFile,$_} }  



Так как у Write-Host нет возвращаемого значения. Надо
Код: powershell
1.
Foreach-Object { IF ( $_ -match "$A[^',)A-z]"){Write-host $RuxFile,$_}; $_ }  



Еще for-each тут точно бессмыслено так как на вход поступает единичная строка.
...
Рейтинг: 0 / 0
Скрипт Powershell
    #38552522
ioscat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Снова я
А почему такое:

"DAAAB" -match "D+B"
False
...
Рейтинг: 0 / 0
Скрипт Powershell
    #38552556
f#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
f#
Гость
ioscat,

потому, что нет фрагмента в котором после одного или нескольких повторений d следует сразу b
...
Рейтинг: 0 / 0
Скрипт Powershell
    #38552566
f#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
f#
Гость
ioscat,

потому, что нет фрагмента в котором после одного или нескольких повторений d следует сразу b
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Скрипт Powershell
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]