哪些命令可以显示目录中文件的编号列表?

哪些命令可以显示目录中文件的编号列表?

我想打印目录中文件名的编号列表。

我试过

dir /w > test.txt

执行此操作的命令是什么?

答案1

@echo off
setlocal enabledelayedexpansion
    set num=0
    FOR %%F IN (*) DO (
        set /a num += 1
        echo !num! %%~fF
    )
    echo %num% files
endlocal

“%%~fF”打印完整路径。要打印短文件名,请使用“%%F”。请参阅for /?结尾处的所有可能扩展。

编辑:传递目录,将其更改为

FOR %%F IN (%**) DO (

并使用带有斜杠的目录名(“C:\Windows\”,而不是“C:\Windows”)或不使用目录名来调用它。

您还可以在pushd %*for 循环之前切换到目录,然后popd在 for 循环之后的任何时间切换到目录。如果您需要执行的操作不仅仅是枚举文件,但您想返回到原始工作目录,这将很有用。

编辑:这是更完整、带注释的版本。它还列出了目录——我错过了for默认情况下不这样做:

@echo off
setlocal enabledelayedexpansion

    :: change to a dir
    pushd %*

    :: file counter
    set num=0

    :: dirs only
    FOR /D %%D IN (*) DO (
        set /a num += 1
        echo !num! %%D
    )

    :: files only
    FOR %%F IN (*) DO (
        set /a num += 1
        echo !num! %%F
    )

    :: final tally
    echo.
    echo %num% files

    :: return to original directory
    popd

endlocal

只需保存为带有扩展名的文件.cmd,然后将其放在路径中的某个位置(例如,C:\Windows),这应该可以在任何最新的 Windows 操作系统上运行(在 XP 上测试)。

答案2

您可以使用以下方式导出文件名列表文件名导出,放置数字,以您想要的任何方式格式化列表并将其打印出来。

答案3

您可以对此进行一些小改动:

@echo off
dir /b >test.txt
find /n /v "" <test.txt
del /f /q test.txt

它会显示如下内容:

[1]file1.txt
[2]file2.txt

等等。

答案4

如果使用带有 NTFS 的 Windows,我认为可以使用一切搜索引擎。它可以搜索文件类型,文件名中包含特定元素,支持正则表达式,并可以导出为 .txt。

替代文本

相关内容