【发布时间】:2018-05-15 13:12:14
【问题描述】:
我有一个 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 显示所有文件名及其从 Programs 文件夹复制到 BackupPrograms 文件夹的路径,但它无法将该输出添加到命令 shell 上显示的我的日志文件中。我尝试了类似的方法,但它会覆盖日志文件中的先前输出。
Copy-Item $ProgramsFiles $ProgramFilesBackUp -Recurse -Force -Verbose *> $logFilePath
我也尝试了下面的代码,将详细生成的输出复制到一个新文件,然后尝试将该文件的内容附加到我的日志文件中,这里它复制了内容,但格式不正确。
$NewText= "$PSScriptRoot\s.txt"
Copy-Item $ProgramsFiles $ProgramFilesBackUp -Recurse -Force -Verbose *> $NewText
Get-Content $NewText | Out-File $logFilePath -Verbose -Append
下面是它复制内容的格式。
【问题讨论】:
标签: powershell powershell-2.0 powershell-3.0 powershell-4.0 logfile