Batch file 如何在batchfile中显示文件名和最新创建日期

Batch file 如何在batchfile中显示文件名和最新创建日期,batch-file,cmd,windows-scripting,Batch File,Cmd,Windows Scripting,我通过运行下面的批处理脚本创建了一个批处理脚本。它在一个文件中显示最新创建的.bak文件和该输出存储 现在我需要该文件的创建日期的一个附加属性,但检索失败。我希望有人能指导我 下面是我脚本的示例代码 SETLOCAL ENABLEDELAYEDEXPANSION for /D %%a in (C:\BACKUP\*) do ( SET var="%%a" echo The ServerName is :: !var! >>1.txt & echo.>&g

我通过运行下面的批处理脚本创建了一个批处理脚本。它在一个文件中显示最新创建的.bak文件和该输出存储

现在我需要该文件的创建日期的一个附加属性,但检索失败。我希望有人能指导我

下面是我脚本的示例代码

SETLOCAL ENABLEDELAYEDEXPANSION
for /D %%a in (C:\BACKUP\*) do (
    SET var="%%a"
    echo The ServerName is :: !var! >>1.txt & echo.>>1.txt  
    for /R /D %%b in ("%%a\*") do (
        SET var1="%%b"
        SET var2="%%~nb"        
        echo the subfolder of  !var! is:: '' !var2!>>1.txt & echo.>>1.txt           
        for /f %%x in ('DIR /B /A-D /OD /T:C "%%b\*.bak"') do (set 
            bakFile="%%x"
        )
        echo The Latest Bak File is :: !bakFile!  >> 1.txt & echo.>>1.txt
    )
)

PowerShell将允许您直接访问
CreationTime
。将以下脚本保存在文件中,例如
latestbak.ps1

[CmdletBinding()]
Param()

Get-ChildItem -Directory -Path 'C:\src\t' |
    ForEach-Object {
        $ServerName = $_.Fullname
        Write-Information $("The ServerName is :: `"{0}`"" -f $($ServerName))
        Get-ChildItem -Directory -Recurse -Path $ServerName -ErrorAction SilentlyContinue |
            ForEach-Object {
                Write-Information $("the subdirectory of  `"{0}`" is:: '' `"{1}`"" -f $($(Split-Path  -Path $_.FullName), $_.Name))
                Get-ChildItem -File -Path $_.FullName -Filter '*.ps1' | Sort-Object -Property CreationTime | Select-Object -Last 1 |
                    ForEach-Object {
                        Write-Information $("The latest Bak File is :: `"{0}`"" -f $($_.FullName))
                    }
            }
    }
使用以下命令从PowerShell控制台运行此命令:

.\latestbak.ps1 -InformationAction Continue 6>1.txt
或者,使用以下命令从cmd shell:

powershell -NoProfile -Command ".\latestbak.ps1 -InformationAction Continue 6>1.txt"

我已经编辑了您的代码,以修复不平衡的括号,并缩进它的可读性。但是,我没有将明显的错误行
9
修改为
10
,我将把它留给您来解决!此外,您还声明未能检索文件的创建日期,但查看代码,它似乎甚至没有尝试检索该文件。请通过更新您的问题,以包含失败的代码,以便我们可以帮助您解决问题。没有做到这一点意味着你在要求别人为你工作!如果您对“上次写入访问”感到满意,只需使用
%%~tx
(它不是“创建”日期,但对于
.bak
文件应该足够了)。获取“上次写入访问”日期的代码要多一点(解析
dir
output或解析`wmic datafile where name=“C:\\path\\file.ext”get CreationDate'))@stephan我尝试了一个简单的程序,它没有进入子文件夹,它工作得很好,我能够获取获取日期和文件名,但当它进入子文件夹时,它将无法检索时间