【发布时间】:2017-04-21 21:25:27
【问题描述】:
我得到一个没有完整路径的提取文件列表。它们以单独的行的 txt 文件形式出现。这些文件可以在不同的文件夹或子文件夹中找到。我想从列表中删除文件,并且仅当文件超过 30 分钟时才从列表中删除文件名。
list.txt 示例:
file1.doc
file2.doc
file3.doc
假设 file3.doc 不到 30 分钟。使用我当前的代码,我可以删除 file1.doc 和 file2.doc 而不是触摸 file3.doc 没问题。我希望我的代码在删除文件时从 list.txt 中删除 file1.doc 和 file2.doc。
$Now = Get-Date
$Minutes = "30"
$TargetFolder = "C:\Test"
$LastWrite = $Now.AddMinutes(-$Minutes)
$Files = Get-Content C:\list.txt |% {get-childitem $TargetFolder -include $_ -recurse} | Where {$_.LastWriteTime -le "$LastWrite"}
foreach ($File in $Files)
{
if ($File -ne $NULL)
{
Remove-Item $File.FullName -WhatIf | out-null
}
}
我完全是初学者 我将如何从原始列表 C:\list.txt 中删除文件名?
谢谢。
【问题讨论】:
-
欢迎来到 StackOverflow。这是How to Ask 的指南。一般来说,问题应该包括关于您尝试过的内容以及遇到问题的代码。如果您希望使用 PowerShell,那么您将使用
Get-ChildItem、Get-Content、Remove-Item、Get-DateCmdlet。您可以通过Get-Help xxx -Examples获取有关如何使用这些功能的详细信息,其中xxx是您需要帮助的命令。 -
还有
Get-Content;) -
不太明白问题陈述。您能否举例说明输入、预期输出以及到目前为止您设法获得的结果?
标签: powershell