Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 文件夹列表及其大小_Batch File - Fatal编程技术网

Batch file 文件夹列表及其大小

Batch file 文件夹列表及其大小,batch-file,Batch File,我有一个包含100多个子文件夹的父文件夹。我想要一个包含子文件夹及其大小的文本文件。您能帮我构建批处理程序吗?仅用于文件名,不包括大小,您可以使用此代码- dir *.* /b /s >> C:\ListOfFile.txt 将“C:\”路径更改为您希望保存文件的任何时候。此代码可以实现以下目的: @echo关闭 标题获取文件夹及其子文件夹的大小 设置“Folder=C:\temp” 设置日志=文件夹\u Size.txt ( 回显“%Folder%”的大小为 调用:GetSize

我有一个包含100多个子文件夹的父文件夹。我想要一个包含子文件夹及其大小的文本文件。您能帮我构建批处理程序吗?

仅用于文件名,不包括大小,您可以使用此代码-

dir *.* /b /s >> C:\ListOfFile.txt

将“C:\”路径更改为您希望保存文件的任何时候。

此代码可以实现以下目的:

@echo关闭
标题获取文件夹及其子文件夹的大小
设置“Folder=C:\temp”
设置日志=文件夹\u Size.txt
(
回显“%Folder%”的大小为
调用:GetSize“%Folder%”
)>%Log%
对于/f“delims=“%%a in('Dir”%Folder%“/AD/b/s”)do(
(
回显“%%a”的大小为
调用:GetSize“%%a”
)>>%Log%
)
启动“”%Log%
::***********************************************************************
:GetSize
(
echo wscript.echo GetSize(“%1”^)
回显函数GetSize(MyFolder^)
echo Set fso=CreateObject(“Scripting.FileSystemObject”^)
echo Set objFolder=fso.GetFolder(MyFolder^)
echo GetSize=FormatSize(objFolder.Size^)
回波结束函数
回声'*******************************************************************
“echo”功能,将数字格式化为典型尺寸刻度
回显函数FormatSize(iSize^)
echo-aLabel=数组(“字节”、“KB”、“MB”、“GB”、“TB”^)
i=0到4的回声
如果iSize^>1024则回显
echo iSize=iSize/1024
回声
回音出口
回显结束If
下一个回声
echo FormatSize=Round(iSize,2^)^&“^&aLabel(i^)
回波结束函数
回声'*******************************************************************
)>%tmp%\Size.vbs
Cscript/NoLogo%tmp%\Size.vbs
删除%tmp%\Size.vbs
退出/b
::***********************************************************************

虽然您没有亲自尝试,但我决定帮助您,因为完成这项任务可能不是那么简单

您是否见过
dir/S
(列出指定目录及其所有子目录中的文件的命令)的输出?它总结了最后的文件总数,还包括总大小:

要在特定目录(例如
D:\TEMP
)上运行此脚本,并将日志数据写入当前目录中的文件
文件夹\u size.log
,请使用以下命令行:

folder_sizes.bat "D:\TEMP" ".\folder_sizes.log"
在脚本中,进行切换以避免名称中包含感叹号(
)的(子)目录出现问题


请注意,
dir/S
命令的输出取决于语言,因此脚本可能无法在英语以外的系统上提供预期的结果。在这种情况下,
for/F
循环的选项字符串
“skip=10 tokens=3”
,尤其是
token
选项,需要相应地进行调整。

什么操作系统?您能展示一下您目前拥有的代码吗?您好,Windows7是操作系统。为了帮助您构建批处理程序,您需要显示到目前为止您拥有的内容,包括您遇到问题的精确描述。否则,这是一个“为我写代码”的请求,这是离题的…谢谢你,先生。这将提供类似子文件夹1、子文件夹2、子文件夹3等的输出。我想构建程序来提供每个子文件夹的大小。
folder_sizes.bat "D:\TEMP" ".\folder_sizes.log"