Cmd 通过命令提示符获取文件和文件夹的大小(mb)?

Cmd 通过命令提示符获取文件和文件夹的大小(mb)?,cmd,window,Cmd,Window,在我的系统中,我的一些文件以gb为单位。 通过使用dir命令的命令提示符,我们可以得到文件的大小,但它显示的大小 它的单位是kb。 我必须手动将其转换为mb command : dir 如何获取以mb为单位的文件大小?以MiB为单位的文件大小: powershell -NoLogo -NoProfile -Command ^ "Get-ChildItem -File | ForEach-Object {'{0:N2} {1}' -f @(($_.Length / 1mb), $_.Full

在我的系统中,我的一些文件以gb为单位。 通过使用dir命令的命令提示符,我们可以得到文件的大小,但它显示的大小 它的单位是kb。 我必须手动将其转换为mb

command : dir
如何获取以mb为单位的文件大小?

以MiB为单位的文件大小:

powershell -NoLogo -NoProfile -Command ^
  "Get-ChildItem -File | ForEach-Object {'{0:N2} {1}' -f @(($_.Length / 1mb), $_.FullName)}"
MiB中的文件大小:

powershell -NoLogo -NoProfile -Command ^
  "Get-ChildItem -File | ForEach-Object {'{0:N2} {1}' -f @(($_.Length / 1mb), $_.FullName)}"

在cmd中,您需要使用for循环并将文件信息转换为所需的格式

For %_ in ("C:\FolderPath\*") DO @(Set /A %~z_ / 1048576 &Echo. Mb    %~nxt_ )

注意:必须包含一个文件掩码(在我的示例中是
*
,但它也可以是
Somefile**
*.
或其他变体)

示例结果:

C:\Admin>For %_ in ("C:\*") DO @(Set /A %~z_ / 1048576 &Echo. Mb    %~nxt_ )
0 Mb    11/07/2007 08:00 AM eula.1028.txt
0 Mb    11/07/2007 08:00 AM eula.1031.txt
0 Mb    11/07/2007 08:00 AM eula.1033.txt
0 Mb    11/07/2007 08:00 AM eula.1036.txt
0 Mb    11/07/2007 08:00 AM eula.1040.txt
0 Mb    11/07/2007 08:00 AM eula.1041.txt
0 Mb    11/07/2007 08:00 AM eula.1042.txt
0 Mb    11/07/2007 08:00 AM eula.2052.txt
0 Mb    11/07/2007 08:00 AM eula.3082.txt
0 Mb    02/09/2019 10:26 AM External_URL_Monitor_2019-02-09_09.26.14.2614.log
3 Mb    02/09/2019 10:47 AM External_URL_Monitor_2019-02-09_09.27.53.2753.log
3 Mb    02/09/2019 11:20 AM External_URL_Monitor_2019-02-09_09.59.28.5928.log
4 Mb    02/09/2019 11:57 AM External_URL_Monitor_2019-02-09_10.23.56.2356.log
23 Mb    02/09/2019 03:20 PM External_URL_Monitor_2019-02-09_11.49.20.4920.log
4 Mb    02/09/2019 10:47 AM Internal_URL_Monitor_2019-02-09_09.27.55.2755.log
3 Mb    02/09/2019 11:21 AM Internal_URL_Monitor_2019-02-09_09.59.34.5934.log
4 Mb    02/09/2019 11:57 AM Internal_URL_Monitor_2019-02-09_10.23.59.2359.log
0 Mb    02/09/2019 03:21 PM Internal_URL_Monitor_2019-02-09_11.41.15.4115.log
1 Mb    02/09/2019 10:05 AM URL_Monitor_2019-02-09_09.01.40.140.log
1 Mb    11/07/2007 08:50 AM VC_RED.cab
0 Mb    11/07/2007 08:53 AM VC_RED.MSI
1 Mb    06/06/2012 05:23 PM Windows6.1-KB2639043-v5-x64.msu


在cmd中,您需要使用for循环并将文件信息转换为所需的格式

For %_ in ("C:\FolderPath\*") DO @(Set /A %~z_ / 1048576 &Echo. Mb    %~nxt_ )

注意:必须包含一个文件掩码(在我的示例中是
*
,但它也可以是
Somefile**
*.
或其他变体)

示例结果:

C:\Admin>For %_ in ("C:\*") DO @(Set /A %~z_ / 1048576 &Echo. Mb    %~nxt_ )
0 Mb    11/07/2007 08:00 AM eula.1028.txt
0 Mb    11/07/2007 08:00 AM eula.1031.txt
0 Mb    11/07/2007 08:00 AM eula.1033.txt
0 Mb    11/07/2007 08:00 AM eula.1036.txt
0 Mb    11/07/2007 08:00 AM eula.1040.txt
0 Mb    11/07/2007 08:00 AM eula.1041.txt
0 Mb    11/07/2007 08:00 AM eula.1042.txt
0 Mb    11/07/2007 08:00 AM eula.2052.txt
0 Mb    11/07/2007 08:00 AM eula.3082.txt
0 Mb    02/09/2019 10:26 AM External_URL_Monitor_2019-02-09_09.26.14.2614.log
3 Mb    02/09/2019 10:47 AM External_URL_Monitor_2019-02-09_09.27.53.2753.log
3 Mb    02/09/2019 11:20 AM External_URL_Monitor_2019-02-09_09.59.28.5928.log
4 Mb    02/09/2019 11:57 AM External_URL_Monitor_2019-02-09_10.23.56.2356.log
23 Mb    02/09/2019 03:20 PM External_URL_Monitor_2019-02-09_11.49.20.4920.log
4 Mb    02/09/2019 10:47 AM Internal_URL_Monitor_2019-02-09_09.27.55.2755.log
3 Mb    02/09/2019 11:21 AM Internal_URL_Monitor_2019-02-09_09.59.34.5934.log
4 Mb    02/09/2019 11:57 AM Internal_URL_Monitor_2019-02-09_10.23.59.2359.log
0 Mb    02/09/2019 03:21 PM Internal_URL_Monitor_2019-02-09_11.41.15.4115.log
1 Mb    02/09/2019 10:05 AM URL_Monitor_2019-02-09_09.01.40.140.log
1 Mb    11/07/2007 08:50 AM VC_RED.cab
0 Mb    11/07/2007 08:53 AM VC_RED.MSI
1 Mb    06/06/2012 05:23 PM Windows6.1-KB2639043-v5-x64.msu



没有代码的问题通常去看,也可以除以
1048576
(=1024*1024)或
1000000
(=1000*1000)-这取决于你想遵循的约定。没有代码的问题通常去看,也可以除以
1048576
(=1024*1024)或
1000000
(=1000*1000)-取决于您希望遵循的约定。兄弟,我刚刚用ps运行了您的代码,但它给了我一些错误。表达式或语句中的“.FullName”标记。@UdeshRanjan-您是否准确地复制并粘贴了该命令?您正在运行哪个版本的PowerShell?
powershell-NoLogo-NoProfile-Command”($PSVersionTable.PSVersion).ToString()“
?@UdeshRanjan对于powershell,请尝试以下操作:
gci“C:\*”;选择{n=“MB”;e={0:n0}MB-f($.Length/1MB)},FullName
@BenPersonick-此代码也在处理目录项。兄弟,我刚刚用ps运行了您的代码,但它给了我一些错误。表达式或语句中的“.FullName”是错误的。@UdeshRanjan-您是否准确复制并粘贴了该命令?您正在运行哪个版本的PowerShell?
powershell-NoLogo-NoProfile-Command”($PSVersionTable.PSVersion).ToString()“
?@UdeshRanjan对于powershell,请尝试以下操作:
gci“C:\*”;选择{n=“MB”;e={0:n0}MB-f($.Length/1MB)},FullName
@BenPersonick-这段代码也在处理目录项。我不知道如何在命令提示符中使用for循环。当我执行for%\uin(“C:”)DO@(Set/A=%~z\u1048576&Echo.Mb%~nxt\u)时,它显示:缺少操作数。2019年10月3日凌晨01:12Udesh@UdeshRanjan这是因为我不小心放了int he=符号。上文修正。还要注意的是,您必须在文件夹名称上包含一个尾随\以便
C:\
和一个文件掩码,例如
*
,否则将没有结果)@UdeshRanjan很好,很高兴提供帮助!:)谢谢你的拇指和复选标记:)我不知道如何在命令提示符下使用for循环。当我在(“C:”)中执行for%uuu@(Set/A=%~z_uuu/1048576&Echo.Mb%~nxt_u)时,它显示:缺少操作数。2019年10月3日凌晨01:12Udesh@UdeshRanjan这是因为我不小心放了int he=符号。上文修正。还要注意的是,您必须在文件夹名称上包含一个尾随\以便
C:\
和一个文件掩码,例如
*
,否则将没有结果)@UdeshRanjan很好,很高兴提供帮助!:)谢谢你的大拇指和复选标记:)