【问题标题】:Is there a way to display the latest file of multiple paths with information in a table format?有没有办法以表格格式显示多个路径的最新文件和信息?
【发布时间】:2022-09-22 21:42:20
【问题描述】:

我每天检查 CSV 文件是否已导出到特定文件夹(路径)。目前有 14 个不同的路径和 14 个不同的文件要检查。文件存储在文件夹中,不会被删除。所以我必须在很多文件之间用“lastwritetime”来区分。我想要一个代码以表格格式显示结果。我会很高兴这样的事情:

名称 LastWriteTime 长度

导出CSV1 21.09.2022 00:50 185

导出CSV2 21.09.2022 00:51 155

我的代码如下所示:

$Paths = @(\'Path1\', \'Path2\', \'Path3\', \'Path4\', \'Path5\', \'Path6\', \'Path7\', \'Path8\', \'Path9\', \'Path10\', \'Path11\', \'Path12\', \'Path13\', \'Path13\')

foreach ($Path in $Paths){
    Get-ChildItem $path | Where-Object {$_.LastWriteTime}|
select -last 1

Write-host $Path
}

pause

这样我想确保每天都在发送文件。 我得到了我想要的结果,但单独查看结果并不容易。 我是 powershell 新手,非常感谢您的帮助。先感谢您。

  • 在您想要的输出中,Name 列应该是什么?它是您传递给Get-ChildItem 的当前文件夹的名称吗?
  • @zett42 我想在名称列中包含所有 14 个文件的名称,这样我就可以轻松地区分这些文件。
  • 试试Select -last 1 -Property Name, LastWriteTime, Length
  • 这似乎可行,但是在文件名之间列出了一些路径,例如: Export1.csv Export2.csv \\\\path2 Export3.csv \\\\path3 我无法获得评论以表格格式显示我的问题,我还是希望你能理解。我该如何解决这个问题,只显示文件名、lastwritetime 和长度?先感谢您。
  • 删除Write-host $Path

标签: powershell file


【解决方案1】:

继续我的 cmets,您可以这样做:

$Paths = @('Path1', 'Path2', 'Path3', 'Path4', 'Path5', 'Path6', 'Path7', 'Path8', 'Path9', 'Path10', 'Path11', 'Path12', 'Path13', 'Path13')

$Paths | ForEach-Object {
    Get-ChildItem $_ | Where-Object {$_.LastWriteTime} | Select-Object -Last 1
} | Format-Table -Property Name, LastWriteTime, Length

如果您想继续使用foreach(),则必须将其包装在脚本块{…} 中,以便能够将所有内容链接到Format-Table:

. {
    foreach ($Path in $Paths){
        Get-ChildItem $path | Where-Object {$_.LastWriteTime} | Select-Object -Last 1
    }
} | Format-Table -Property Name, LastWriteTime, Length

这里. 运算符用于立即运行脚本块,而不创建新范围。如果您想创建一个新范围(例如,定义仅存在于脚本块中的临时变量),您可以使用调用运算符 & 代替。

【讨论】:

    猜你喜欢
    • 2021-04-25
    • 1970-01-01
    • 2011-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多