[cmd dir在Windows 10中以Gb而不是字节为单位写文件大小

问题描述 投票:0回答:1

我使用命令

dir L01 * .gz / o-s / -c> L01.txt

查找目录中的所有gz文件并按大小排序。效果很好!但是,我需要以Gb为单位而不是以字节为单位!

01/24/2020 12:36 AM 3018394731 v3000418221_L01_82_1.fq.gz

01/24/2020 12:36 AM 2883376937 v3000418221_L01_82_2.fq.gz

01/24/2020 12:36 AM 2875257587 v3000418221_L01_69_1.fq.gz

[01/24/2020 12:36 AM 2785098410 v3000418221_L01_69_2.fq.gz

[01/24/2020 12:36 AM 2520038171 v3000418221_L01_99_1.fq.gz

[01/24/2020 12:36 AM 2478618550 v3000418221_L01_62_1.fq.gz

[01/24/2020 12:36 AM 2470651439 v3000418221_L01_99_2.fq.gz

我也只需要文件名和大小以Gb为单位,没有日期和时间

而且,如果命令对所有子目录中的文件进行处理,并给出如下输出,那就太好了:

目录L01(或其他):

v3000418221_L01_82_1.fq.gz 2.5 Gb

v3000418221_L01_82_2.fq.gz 2.4 Gb

目录L02:

v3000418221_L01_12_1.fq.gz 2.1 Gb

v3000418221_L01_32_2.fq.gz 0.4 Gb

v3000418221_L01_42_1.fq.gz 1.5 Gb

v3000418221_L01_8_2.fq.gz 2.4 Gb

这不是我的计算机,所以我尝试在cmd中进行操作而不安装python。谢谢!

windows powershell cmd directory size
1个回答
0
投票

您可以在PowerShell中执行以下操作,它将输出按FileInfo(大小)排序且大小转换为GB的Length对象。

Get-ChildItem -Filter '*L01*.gz' | Sort Length -Desc |
    Select LastWriteTime,Name,@{n='SizeGB';e={$_.Length/1GB}}

如果要通过管道将输出原样保存到文件,则只需添加| Out-File L01.txt

在PowerShell中,dirGet-ChildItem的别名。因此,您可以根据需要使用dir -Filter '*L01*.gz'

PowerShell与对象一起使用。如果您的对象具有属性名称,则默认情况下,它们将在表输出中显示为列标题。如果要删除标题,则可以将输出通过管道传递到Format-Table -HideTableHeaders

Get-ChildItem -Filter '*L01*.gz' | Sort Length -Desc |
    Select LastWriteTime,Name,@{n='SizeGB';e={$_.Length/1GB}} |
        Format-Table -HideTableHeaders | Out-File L01.txt
© www.soinside.com 2019 - 2024. All rights reserved.