Powershell - проблема с Out-File - вставьте переменную count в имя файла - PullRequest
1 голос
/ 16 февраля 2012

Я бы хотел сохранить файл с переменной count между префиксом файла и расширением файла.Out-File (префикс файла + переменная счета + расширение файла).Такие вещи.Я смехотворно новичок в Powershell, поэтому будь милостив: P

$max = get-content h:test1\test.txt | Measure-Object 
$h = get-content h:test1\test.txt
For($i=0; $i -lt $max.count ; $i++){
select-string h:test2\*.txt -pattern $($h[$i]) | Format-List | Out-File (Join-Path h:\text  $i)
}

Ответы [ 2 ]

1 голос
/ 16 февраля 2012
select-string h:test2\*.txt -pattern $($h[$i]) | Format-List | Out-File "h:\text$i.txt"

Как и в любом хорошем языке сценариев, существует множество способов достижения цели, но именно этот должен вам помочь.

1 голос
/ 16 февраля 2012

Просто используйте

Out-File h:\text\$i.extension

Синтаксический анализ PowerShell порождает несколько очень странных проблем в крайних случаях, но в целом он разработан так, как вы ожидаете, что он будет работать в большинстве, если не во всех, распространенных случаях.случаи.

В вашем случае я бы, вероятно, решил проблему немного иначе:

Get-Content h:\test1\test.txt |
  ForEach-Object { $i = 0 } {
    Select-String H:\test2\*.txt -pattern $_ |
      Format-List |
      Out-File h:\text\$i.extension
    $i ++
  }

Первый блок для ForEach-Object в этом случае запускается один раз в начале циклаи инициализирует переменную счетчика.Я склонен избегать явных циклических конструкций (таких как for (x; y; z) или foreach (x in y)) в пользу конвейерных решений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...