如何在版本5.1的命令行窗口中查找大文件

时间:2013-12-30 18:13:05

标签: windows command-prompt

如何在windows ver 5.1命令行中找到大文件?

对于Windows ver 6.1,我可以运行以下命令:

  

forfiles / p c:\ / s / m / c“cmd / c if @fsize gtr 100000 echo @file   @fsize“

然而,版本5.1窗口的等效命令是什么?

感谢您的快速帮助!

(添加引号)

3 个答案:

答案 0 :(得分:5)

从命令行运行

for /r c:\ %f in (*) do if %~zf gtr 100000 echo %f %~zf

要从批处理文件运行它,请使用%

更改%%

编辑 - 如评论中所述,批处理命令行中的算术对操作数有一些限制。在这种情况下,%~zf命令左侧部分的forif命令中引用的文件大小)没有问题,但正确大小的值仅限于值从-21474836472147483646

要处理它,如果在管理员帐户下执行命令,则可以使用wmic命令。 OP问题中的命令可以写为

wmic datafile where "drive='c:' AND filesize>'100000'" get caption, filesize

答案 1 :(得分:0)

首先搜索实际目录中的最大目录

diruse /* /m /c /, . |sort

cd到选定的目录;你可以再次使用diruse或 搜索所选目录中的最大文件,例如超过500MB:

forfiles /s /c "cmd /c if @fsize gtr 500000000 echo @path @fsize bytes"

答案 2 :(得分:0)

对于Windows,我找不到适合我命令行的答案,因此我在Powershell中编写了答案。 以下代码将帮助您在所需的扫描路径中找到文件列表(大于1 KB)。

#通过Powershell运行

#$PathToScan refers to the directory where you want to find your files greater than 1 KB.
$PathToScan="E:\"
"Path to scan:`t $PathToScan"
$hash = $null
$hash = @{}
Get-ChildItem -path $PathToScan -recurse | Where-Object {
#If you want to find files greater than 1GB, replace all KB in this powershell script to GB.
($_.Length /1KB) -gt 2 
} | ForEach-Object {
$hash.add(
    $_.DirectoryName.Replace("$PathToScan","")+$_.Name,
    [math]::Round(($_.length/1KB),0))
}

$TableStyle = @{Expression={$_.Value}; Label="Size (KB)"; Width=10;  Alignment = 'Left'}, 
          @{Expression={$_.Name}; Label="Name"; Width=100}
$hash.GetEnumerator() | Sort Value -Descending| Format-Table -Property $TableStyle

Countdown 5

Function Countdown{
Param ($TimeInSec)
Do {
    Write-Host "$TimeInSec"
    Start-Sleep -s 1
    $TimeInSec--
    }
    Until ($TimeInSec -eq 0)
}

或者您可以在这里查看我的代码; [为Windows查找以KB为单位的大文件]: https://github.com/worldpeacez0991/powershell

希望我的回答对某人有帮助,祝您度过愉快的一天^ ^