Out-File 写一个空文件
Out-File writes an empty file
我在一个运行 PowerShell v2 的系统上。
我有一个删除旧备份文件的脚本。我想保存脚本的结果,因为我在屏幕上看到它被写入一个文件,这样我就可以查看所有文件被删除的内容。
我读到我在屏幕上看到的 Write-Host
输出无法重定向到文件,所以我也尝试使用 Write-Output
,但可以将结果写入文件.文件已创建,但它是空的。
我哪里做错了?
代码如下:
$Stamp1 = Get-Date -Format "MMddyyyy_hhmmss"
$File= "E:\SSBackups\PS_Delete_Script_logs\Delete_Backup_Results_$Stamp1.txt"
$ReadFile = Get-Content C:\Users\MSA050415\Desktop\List.txt
foreach ($Folder in $ReadFile) {
#Write-Host "Folder currently being worked on: $Folder" -ForegroundColor Magenta
Write-Output "Folder currently being worked on: $Folder"
$Path ="E:\SSBackups\Database_Backups$Folder"
#Write-Host "The Path is set to $Path" -ForegroundColor Green
Write-Output "The Path is set to $Path"
Get-ChildItem $Path |
Where-Object {$_.LastWriteTime -lt "4/17/2018 12:15:00 AM"} |
Remove-Item -Verbose |
Out-File $File
}
详细输出写入 verbose output stream,在 PowerShell v2 中无法重定向。 PowerShell v3 中添加了该功能。
不过您应该可以录制成绩单:
Start-Transcript $File -Append
Get-ChildItem $Path |
Where-Object {$_.LastWriteTime -lt "4/17/2018 12:15:00 AM"} |
Remove-Item -Verbose
Stop-Transcript
我在一个运行 PowerShell v2 的系统上。
我有一个删除旧备份文件的脚本。我想保存脚本的结果,因为我在屏幕上看到它被写入一个文件,这样我就可以查看所有文件被删除的内容。
我读到我在屏幕上看到的 Write-Host
输出无法重定向到文件,所以我也尝试使用 Write-Output
,但可以将结果写入文件.文件已创建,但它是空的。
我哪里做错了?
代码如下:
$Stamp1 = Get-Date -Format "MMddyyyy_hhmmss"
$File= "E:\SSBackups\PS_Delete_Script_logs\Delete_Backup_Results_$Stamp1.txt"
$ReadFile = Get-Content C:\Users\MSA050415\Desktop\List.txt
foreach ($Folder in $ReadFile) {
#Write-Host "Folder currently being worked on: $Folder" -ForegroundColor Magenta
Write-Output "Folder currently being worked on: $Folder"
$Path ="E:\SSBackups\Database_Backups$Folder"
#Write-Host "The Path is set to $Path" -ForegroundColor Green
Write-Output "The Path is set to $Path"
Get-ChildItem $Path |
Where-Object {$_.LastWriteTime -lt "4/17/2018 12:15:00 AM"} |
Remove-Item -Verbose |
Out-File $File
}
详细输出写入 verbose output stream,在 PowerShell v2 中无法重定向。 PowerShell v3 中添加了该功能。
不过您应该可以录制成绩单:
Start-Transcript $File -Append
Get-ChildItem $Path |
Where-Object {$_.LastWriteTime -lt "4/17/2018 12:15:00 AM"} |
Remove-Item -Verbose
Stop-Transcript