2016-05-18 1 views
1

Если у меня есть это:Get-ChildItem -Path в NLog файл

Get-ChildItem -Path $BACKUP_REG_PATH >> $TOT_LOG_FILE 

я получить штраф список в моем файле журнала, как это:

Directory: C:\WS\BACKUP\xxxx-Reg 


Mode    LastWriteTime  Length Name                  
----    -------------  ------ ----                  
-a---  2016-05-17  11:04  494018 xxxxxx_REGISTRY_EVENTLOG__2016-05-17__11_04_38.reg      
-a---  2016-05-17  11:08  494018 xxxxxx_REGISTRY_EVENTLOG__2016-05-17__11_08_59.reg      
-a---  2016-05-17  11:10  494018 xxxxx_REGISTRY_EVENTLOG__2016-05-17__11_10_31.reg      

Я хочу сделать это для NLog вместо этого, но я не знаю, как получить хороший список, как указано выше.

Если я это сделать:

$regtxt=Get-ChildItem -Path $BACKUP_REG_PATH 
$LOGGER.Trace("$regtxt"); 

Я только получить длинный список на той же строке с окнеИМЯстолбец.

Любые идеи, как это решить?

ответ

1

Я не знаю, что NLog, но метод Trace, вероятно, выводит трассировку в одной строке. Вы можете перебирать каждый элемент с помощью Foreach-Object Командлет и написать след:

Get-ChildItem -Path $BACKUP_REG_PATH | Foreach-Object { 
    $LOGGER.Trace($_); 
} 

Примечание: Это не выводить имя столбца, вы, возможно, придется проследить это самостоятельно.

Чтобы решить эту проблему, вы можете вывести вывод на командлет Out-String, который даст вам одну строку. Затем вам нужно разбить строку на [System.Environment]::NewLine, чтобы получить массив для итерации по нему:

((Get-ChildItem | select -first 4 | Out-String) -split [System.Environment]::NewLine) | 
    ForEach-Object { 
     $LOGGER.Trace($_); 
    }