PowerShell, подробный вывод в файл журнала результатов в 'Foreach'

Я хочу сохранить каждое «подробное описание записи» и «предупреждение о записи» в текстовый файл или файл журнала после завершения сценария.

Я пробовал out-file внутри цикла и вне цикла с var в начале, как предложенные здесь элементы. Как сбросить вывод цикла foreach в файл в PowerShell?

edit: было бы удобно также захватить выходные данные из команды измерения.

Но для моего сценария это не сработало. Любая помощь будет оценена по достоинству.

#initialisation
CLS
$ErrorActionPreference = 'Stop'
$VerbosePreference = "continue"

#Settings
$SubFolder = ".\_Orphan"
$FileListFile = ".\DirtoMove.csv"



#Retrieve List with folders to move from current folder.
Try { [Array]$FilesToMove = Get-Content $FileListFile }
Catch {Write-Warning "could not load $($FileListFile)"; Start-Sleep -S 3 ; Exit}

#If subfolder does not exist then create it.
If (!(Test-Path $SubFolder)) {
    Try { New-Item $SubFolder -ItemType Directory | Out-Null}
    Catch {Write-Warning "Could not create subfolder $($SubFolder)"; Start-Sleep -S 3 ; Exit}
}
Measure-Command{
#Try to moving the folders from the list to the the specified subfolder.
Foreach ($File in $FilesToMove) {



    #If folder does not exist then skip.
    If (!(Test-Path $File)) {
        Write-Verbose "File $($File) Does not exist, skipping"; 
        Continue
    }

    # Check if folder already exist in the sub folder.
    If (Test-Path (Join-Path -Path $SubFolder -ChildPath $File)){
        Write-Verbose "File $($File) exists already in the subfolder, skipping";
        Continue    
    }


    #try moving the folder.
    Try {
        $File | Move-Item -Destination $SubFolder;
        Write-Verbose "File $($File) succesfully moved." ;
    }
    Catch {Write-Warning "Could not move file $($File), Skipping" ; Continue}        
}

}

Write-Verbose "Script finished, waiting for 5 seconds before closing."

Start-Sleep  -Seconds 5
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
1 785
2

Ответы 2

Вы можете использовать Start-Transcript в самой первой строке вашего скрипта и Stop-Transcript в конце. Все, что делает сценарий, будет автоматически записываться в файл журнала.

Старт-стенограмма

Посмотрите на перенаправление. https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_redirection?view=powershell-6

В данном случае для этого подходит пример 3.

При запуске вашего скрипта назовите его так:

./Script.ps1 3>&1 4>&1 > C:\result.log

Это перенаправляет поток предупреждений (3> & 1) и подробный поток (4> & 1) в поток успеха, который затем перенаправляется в файл (> C: \ result.log)

Другие вопросы по теме