以相反的顺序循环目录中的文件

ger*_*tan 3 windows batch-file command-prompt

在 DOS 批处理文件中,我可以编写以下循环以按字母升序迭代目录中的文件:

for %f in (*) do (echo %f)
Run Code Online (Sandbox Code Playgroud)

我该如何做同样的事情,但以相反的顺序(字母降序)迭代文件?

RGu*_*erg 6

从命令行:

for /f "tokens=*" %f in ('dir /b /o-n') do (echo %f)
Run Code Online (Sandbox Code Playgroud)

在 bat 文件中:

for /f "tokens=*" %%f in ('dir /b /o-n') do (echo %%f)
Run Code Online (Sandbox Code Playgroud)
/B           Uses bare format (no heading information or summary).
/O           List by files in sorted order.
sortorder    N  By name (alphabetic)
             -  Prefix to reverse order

Type "dir /?" in CMD for more details
Run Code Online (Sandbox Code Playgroud)

  • 文件名可以有前导空格 - 并且 `tokens=*` 去除前导空格。如果文件名需要准确,最好使用 `"delims="`。 (6认同)
  • 简单的 FOR 循环仅返回文件,但编写的 DIR 命令将返回文件和文件夹。应添加`/AD` 选项以消除文件夹。要真正使它像简单的 FOR 一样,它应该有 `/ADHS` 来消除隐藏文件和系统文件。 (2认同)