具有多个文件夹的最新文件的日志日期



我的文件夹\文件结构如下:

C:Folder1Folder2CustomerFolderFiles.7z

我已经设置了一个ftp服务器,所以结构很奇怪。 无论如何,在每个客户文件夹中,每个文件夹中大约有 10 个文件。 我想运行一个批处理文件,创建一个文本文件,该文件将进入每个客户文件夹并返回最新的文件日期(不关心名称,需要知道文件是何时创建的)。 文本文件将如下所示:

CustomerFolder1 - 1/1/2014
CustomerFolder2 - 12/3/2013

这是我到目前为止所拥有的,for/f 是我停止的地方:

for /d %%D in ("C:ftplocaluser*") do (
    cd /d "%%D"
    for /f 

我创建了一些代码,但您可能需要在计算机上使用日期/时间格式。您还可以更改显示信息(添加更多回声线)。

@echo off 
SetLocal enabledelayedexpansion 
set "ftpuserdir=C:ftplocaluser"
for /d %%D in (%ftpuserdir%*) do (
    echo.|set /p some=%%D
    set found=0
    for /f "tokens=*" %%a in ('dir /TC /O-D /B /A-D "%%D*" 2^>nul') do (
        if !found!==0 (
            for /f "tokens=*" %%z in ('dir "%%D%%a" 2^>nul') do (
                echo %%z | find "%%a">nul
                if !errorlevel!==0 (
                    rem echo Last file=%%z
                    for /f "tokens=1,2,3,*" %%s in ('echo %%z') do (
                            echo  - %%s_%%t_%%u
                    )
                    echo.
                    set found=1
                )
            )
        )
    )
)

如果您对代码有疑问,请告诉我。我知道这很复杂,但我没有设法让它更简单。

@ECHO OFF
SETLOCAL
SET "sourcedir=u:ftplocaluser"
SET "spaces=                               "
(
 for /d %%D in ("%sourcedir%*") do (
  pushd "%%D"
  SET "latest="
  FOR /f "delims=" %%a IN ('dir /b /a-d /o:-d') DO IF NOT DEFINED latest (
   SET latest=Y
   FOR /f "delims=" %%q IN ("%%D") DO SET cdir=%%~nxq%spaces%
   FOR /f "tokens=1" %%t IN ("%%~ta") DO CALL ECHO %%cdir:~0,20%% - %%t
  )
  popd
 )
)>newfile.txt
TYPE newfile.txt
GOTO :EOF

您需要勾选目录名的长度以适合您的最大值和可能的日期 - 如果它显示日期名称,则tokens=1更改为 tokens=2

我还更改了源目录名称以适合我的系统。您需要修复它以适合您的问题。

下面是修改后的代码:

@echo关设置本地启用延迟扩展set "ftpuserdir=C:\csftp\localuser"for/d %%D in (%ftpuserdir%*) do ( 回声。|设置/p some=%%D 集合找到=0 for/f "tokens=" %%a in ('dir/TC/O-D/B/A-D "%%D*" 2^>nul') do ( 如果 !找到!==0 ( for/f "tokens=" %%z in ('dir "%%D\%%a" 2^>nul') do ( 回显 %%z |查找 "%%a">NUL 如果 !错误级别!==0 ( rem echo 最后一个文件=%%z 对于/f "tokens=1,2,3,*" %%s in ('echo %%z') do ( 回显 %%D %%s>>1.txt

                )
               :: echo.
                set found=1
            )
        )
    )
)

这是屏幕结果(我还不能发布图片..)C:\csftp\localuser\cs1234C:\csftp\localuser\cs34234C:\csftp\localuser\cs4387

它一直这样下去...

并且文本文件没有列出所有内容,有点跳过.. 在 C:\csftp\localuser 文件夹中,我有很多 100 个子文件夹,我需要这个文件来浏览。

最新更新