将已删除的文件记录到文本文件

时间:2018-10-15 08:43:26

标签: powershell

我想知道如何将该脚本中的操作记录到文本文件中,因为我不知道如何执行该操作,因为cmdlet let asset = Asset.fromModule(require('../../config/products.tkon')); await asset.downloadAsync(); let data = await FileSystem.readAsStringAsync(asset.localUri); data = JSON.parse(data); 对我不起作用,并且我无法在Internet上找到解决方案。

问题是Start-Transcript cmdlet不会输出Where-Object捕获的任何内容。

有人有解决这个问题的好主意吗?

Get-ChildItem

2 个答案:

答案 0 :(得分:2)

您好错误666,

您可以使用几种不同的方法...

  • Tee-Object =将流分叉到文件
  • -PipelineVariable =将信息累积在变量中
  • 使用循环=在其中添加一个日志到文件的步骤
  • 在管道中放入ForEach-Object
    既可以记录您的信息,又可以执行Remove-Item

循环是最容易理解的。 [ grin ]但是,如果要将其保留在管道中,可以在ForEach-Object脚本块所在的位置添加一个Where-Object,并同时进行过滤器测试和各种操作在那个街区。

保重,

答案 1 :(得分:2)

尝试类似

$limit = (Get-Date).AddDays(-30)  
$path =Split-Path -Parent $MyInvocation.MyCommand.Definition

Get-ChildItem $path -file -recurse -force | where LastWriteTime -lt $limit | 
        Tee-Object -FilePath "c:\temp\deleted.txt"  -Append | Remove-Item

Get-ChildItem $path -directory | 
    where {(Get-ChildItem $_.FullName -file -Recurse | select -First 1) -eq $null} | 
        Tee-Object -FilePath "c:\temp\deleted.txt" -Append | Remove-Item