使用CMD窗口,获取当前目录中每个文件夹的最新文件名
如何使用cmd窗口获取当前目录中每个文件夹中最新文件的名称 我觉得这要么是一个多步骤的命令过程,要么是我目前所知之外的一行代码 我只熟悉从命令行使用“一次性”命令,例如使用CMD窗口,获取当前目录中每个文件夹的最新文件名,cmd,Cmd,如何使用cmd窗口获取当前目录中每个文件夹中最新文件的名称 我觉得这要么是一个多步骤的命令过程,要么是我目前所知之外的一行代码 我只熟悉从命令行使用“一次性”命令,例如 dir/b/o:n/ad>folderlist.txt,因此任何关于执行更复杂的命令行任务的参考都会很好。您需要能够遍历目录列表和每个目录中的文件列表。这可以使用FOR循环来完成。有关详细信息,请参阅获取/? @ECHO OFF SETLOCAL ENABLEDELAYEDEXPANSION PUSHD "C:\the dir
dir/b/o:n/ad>folderlist.txt,因此任何关于执行更复杂的命令行任务的参考都会很好。您需要能够遍历目录列表和每个目录中的文件列表。这可以使用FOR
循环来完成。有关详细信息,请参阅获取/?
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
PUSHD "C:\the directory\of interest"
FOR /F "usebackq tokens=*" %%d IN (`DIR /B /A:D .`) DO (
DIR /B /A:-D %%d >NUL 2>&1
IF !ERRORLEVEL! EQU 0 (
FOR /F "usebackq tokens=*" %%f IN (`DIR /B /A:-D /O:D %%d`) DO (
SET LASTFILE=%%f
)
ECHO %%d\!LASTFILE!
)
)
POPD
谢谢只要它在父目录中,它就可以工作。问题是“在当前目录中”,所以我从表面上看它。如果这是答案,请将其标记为答案。谢谢。我确实有一个问题,通过设置父目录的路径,应该添加什么才能使其工作,这样我就可以将批处理文件保存在单独的文件夹中。因为,“.”列出了批处理文件的目录,并替换为我要使用的文件夹的完整路径不起作用,因为使用“/B”只给出文件夹/文件名,而不是完整路径引用。(有点不确定如何成批连接;考虑到它是一台工作计算机,我不能使用我实际上知道的编程语言!)我添加了一个PUSHD和POPD。PUSHD将把您(CD)放入指定的目录中。POPD将返回到PUSHD之前的当前工作目录。它就像一个堆栈。谢谢更新!对不起,我没有完全限定我必须做的事情。我正在测试我创建的文件夹,但发现我没有对需要读取的文件夹的写入权限。