Windows7 命令提示符显示来自 dir 命令的对象数作为列表

Windows7 命令提示符显示来自 dir 命令的对象数作为列表

我使用的是 Windows7,我想知道文件(或对象)的数量,以便与 Amazon S3 存储桶中的对象进行比较。我对大小不感兴趣,因为不同文件类型的大小可能不同。

我想在命令提示符下以列表形式执行此操作(以 dir 开头),以便我可以从多台不同的计算机将其输出到电子表格中,以便我可以验证 vs s3。此输出为 dir>.txt,其中来自 dir 的信息不仅是日期 | 时间 | 类型(目录或文件) | 文件名 | 以及对象数量。

我需要访问数十台计算机上的数百个文件夹,因此我正在寻找 1) 简单且 2) 不需要单独输入每个文件夹的名称 3) 可以在每个文件夹和子文件夹中进行递归搜索 4) 生成列表输出的命令。dir 命令本身已经完成了 90% 的工作,只是缺少文件夹内文件的数量,希望这是一个易于生成的输出。

请不要推荐 Linux 或 Powershell,因为它们无法应用。

答案1

您可以使用此命令:

@echo off & cd "Filepath" & for /f "tokens=* delims=*" %a in ('dir /s /b') do (set "name=%~fa" & set "date=%~za" & set "type=%~xa" & echo %date% %type% %name% >>"Output.txt")

此处将“Filepath”替换为文件夹路径,将 output.txt 替换为输出文本文件。如果您需要添加更多属性,请在评论中联系我。从 Cmd 运行此命令。

答案2

@echo off & title <nul & title ...\%~nx0

cd/d "%~dp0" && setlocal EnableDelayedExpansion
>nul del/q /f "%temp%\_output_.csv" .\output.csv 2>&1 

for /d /r %%I in (*)do for /f %%i in ('dir/b "%%~I"^|find/c /v ""
')do >>"%temp%\_output_.csv" echo\%%~tI,^<DIR^>,%%~nxI,%%~i,files 

<con: >nul move "%temp%\_output_.csv" .\output.csv 2>&1 & endlocal

获取没有预定义布局的项目文件夹、文件、对象总数、日期的列表...并不是一件容易实现的事情,尤其是当我们不知道对于那些询问的人来说什么是简单的时候。

你可以试试:


@for /d /r %I in (*)do @for /f %i in ('dir/b "%~I\"^|find/c /v ""')do @echo\%~tI ^<DIR^> %~nxI %~i files


@echo off 

rem :: go to your destination folder
cd /d "%~dp0"&& setlocal EnableDelayedExpansion

rem :: remove any files from previous runs (if exist)
>nul del/q /f "%temp%\_output_.csv" .\output.csv 2>&1 

rem :: use a `for` loop to recursively folder and a second loop to
rem :: count your files in the current folder in the first `for` loop
for /d /r %%I in (*)do for /f %%i in ('dir/b "%%~I"^|find/c /v ""
')do >>"%temp%\_output_.csv" echo\%%~tI,^<DIR^>,%%~nxI,%%~i,files 


rem :: save the results to the temporary folder, then move to the current 
<con: >nul move "%temp%\_output_.csv" .\output.csv 2>&1 & endlocal

  • 一些使用for变量替换的选项:
    %%~i   - expands %%i removing any surrounding quotes (")
    %%~fi  - expands %%i to a fully qualified path name only
    %%~ti  - expands %%i to date/time of file only
    %%~ni  - expands %%i to a file name only
    %%~xi  - expands %%i to a file extension only
    
    %%~nxi => expands %%~i to a file name and extension

  • 选项/d /r没有记录,但可以是一个有用的组合,虽然它会递归遍历所有子文件夹通配符仅与文件夹/目录名称匹配(不是文件名)。

相关内容