![DIR /S 和 Get-ChildItem -Recurse 之间的区别](https://linux22.com/image/1597180/DIR%20%2FS%20%E5%92%8C%20Get-ChildItem%20-Recurse%20%E4%B9%8B%E9%97%B4%E7%9A%84%E5%8C%BA%E5%88%AB.png)
为什么这些命令返回不同的结果?
从cmd.exe:
>DIR /S C:\SVN
...
Total Files Listed:
87268 File(s) 23,080,818,153 bytes
15836 Dir(s) 216,886,992,896 bytes free
从 powershell.exe:
>Get-ChildItem -File -Recurse -Force -Path 'C:\SVN' |
Measure-Object -Sum -Property Length |
Select-Object -Property Count,Sum
Count Sum
----- ---
87305 23081499113
答案1
当您在 CMD 提示符中发出 DIR 命令时,默认行为是不显示系统和隐藏文件。要显示所有内容,请使用/A
不带任何修饰符的开关。
但是,在 PowerShell 中,您使用了-Force
定义为“允许 cmdlet 获取用户无法访问的项目,例如隐藏文件或系统文件”的参数。
因此这种差异意味着您的文件夹中有一些隐藏文件或系统文件。