Batch file 批处理:以txt格式以路径和大小递归列出文件

Batch file 批处理:以txt格式以路径和大小递归列出文件,batch-file,recursion,Batch File,Recursion,尝试递归列出所有文件,其中仅包含文件夹的路径、名称和大小,并以txt格式输出。 我计划对两个文件夹执行此操作,并比较两个输出文本,看看它们是否相同 现在我试过: @echo关闭 对于(*.*)中的/R“F:\Folder1\MyFolder\%A,执行echo%~pnA%~zA>output.txt 但目前看来递归性在我的案例中不起作用,因为我得到: \Folder\MyFolder\MyFile 23617195 尝试附加结果: for /R "F:\Folder1\MyFolder\"

尝试递归列出所有文件,其中仅包含文件夹的路径、名称和大小,并以txt格式输出。 我计划对两个文件夹执行此操作,并比较两个输出文本,看看它们是否相同

现在我试过:

@echo关闭
对于(*.*)中的/R“F:\Folder1\MyFolder\%A,执行echo%~pnA%~zA>output.txt

但目前看来递归性在我的案例中不起作用,因为我得到:

\Folder\MyFolder\MyFile 23617195 

尝试附加结果:

for /R "F:\Folder1\MyFolder\" %A in (*.*) do echo %~pnA %~zA >> output.txt

如果您愿意,也可以尝试类似的方法:

@echo off 
Set LogFile=Path_Size.txt
if exist %LogFile% Del %LogFile%
Set Folder=c:\test
(
    for /f %%a in ('dir /s /b %Folder%') do (
        echo "%%~fa" & Call:GetSize %%a & echo ******************
        )
)>>%LogFile% 2>nul
Start "" %LogFile%
pause

:GetSize
(
echo wscript.echo GetSize("%~1"^)
echo Function GetSize(MyFile^)
echo    Set fso = CreateObject("Scripting.FileSystemObject"^)
echo    Set objFile= fso.GetFile(MyFile^)  
echo    GetSize = FormatSize(objFile.Size^)
echo End Function
echo '*******************************************************************
echo 'Function to format a number into typical size scales
echo Function FormatSize(iSize^)
echo    aLabel = Array("bytes", "KB", "MB", "GB", "TB"^)
echo    For i = 0 to 4
echo        If iSize ^> 1024 Then
echo            iSize = iSize / 1024
echo        Else
echo            Exit For
echo        End If
echo    Next
echo    FormatSize = Round(iSize,2^) ^& " " ^& aLabel(i^)
echo End Function
echo '*******************************************************************
)>%tmp%\Size.vbs
Cscript /NoLogo %tmp%\Size.vbs
Del %tmp%\Size.vbs
Exit /b

谢谢你,真管用!第二个问题:文件夹是保存文件夹。我需要查看文件是否相同,以便查看名称和大小。comp是否适用于这种情况?@vincs2-您可以检查(FC)[命令,您可以使用该命令比较两个文件。