У меня есть сценарий PowerShell, который копирует некоторые файлы из одной папки в другую, а также у меня есть код для создания файла журнала и добавления шагов, выполняемых сценарием, в файл журнала.
Ниже приведен код -
[CmdletBinding()]
Param (
[string]$destRoot = "C:\Program Files\Demo",
[string]$BackUpFolder = "C:\Program Files\Backup"
)
$scriptPath = $PSScriptRoot
$logFilePath = Join-path $scriptPath "FileDeployment.log"
# If log file exists, then clear its contents
if (Test-Path $logFilePath) { clear-content -Path $logFilePath }
# It displays the date and time of execution of powershell script in log file.
$log = "Date Of Testing: {0} " -f (Get-Date)
$logString = "Process Started."
add-content -Path $logFilePath -Value $log -Force
add-content -Path $logFilePath -Value $logString -Force
add-content -Path $logFilePath -Value "`n" -Force
# Code to take back of programs folder
$ProgramFilesBackUp = "$BackUpFolder\BackupPrograms"
$ProgramsFiles = "$destRoot\Programs\*"
Copy-Item $ProgramsFiles $ProgramFilesBackUp -Recurse -Force -Verbose
-Verbose
отображает все имена файлов вместе с путем, который копируется из папки «Программы» в папку BackupPrograms, но ему не удается добавить эти выходные данные в мои файлы журналов, которые отображаются в командной оболочке. Я пытался что-то вроде этого, но он перезаписывает предыдущий вывод, присутствующий в файле журнала.
Copy-Item $ProgramsFiles $ProgramFilesBackUp -Recurse -Force -Verbose *> $logFilePath
Я также попробовал приведенный ниже код, скопировав вывод, сгенерированный verbose, в новый файл, а затем попытался добавить содержимое файла в мой файл журнала, здесь он скопировал содержимое, но не в правильном формате.
$NewText= "$PSScriptRoot\s.txt"
Copy-Item $ProgramsFiles $ProgramFilesBackUp -Recurse -Force -Verbose *> $NewText
Get-Content $NewText | Out-File $logFilePath -Verbose -Append
Ниже приведен формат, в котором он скопировал содержимое.