创建一个包含文件名,创建日期,修改日期的列表

时间:2014-09-22 14:59:54

标签: windows date powershell batch-file

查询这两个日期的最明智的方法是什么。 PowerShell或Windows Batch解决方案是首选。 我想有一个如上所述的列表:

文件名,创建日期,上次修改

我知道: Dir有/ t:[A,W,C]但是找不到一次显示多个日期的方法。 对于文件,@ fdate @ftime只查询修改日期。

4 个答案:

答案 0 :(得分:4)

如果PowerShell可以接受:

Get-ChildItem | Select-Object -Property Name, CreationTime, LastWriteTime

答案 1 :(得分:2)

wmic datafile where (drive="C:" and path="\\somedir\\somesubdir\\") get Caption,CreationDate,LastModified

这不是一个完整的脚本,只是一个例子。更改驱动器和你想要的列表的路径(在路径中注意双斜线)。你也应该关心WMIC输出是unicode(不像cmd) 并且XP家庭版不提供WMIC。

你也可以在jscript中使用build(每个窗口都有它)并创建一个混合的.bat / jscript(保存/使用脚本为.bat):

@if (@X)==(@Y) @end /*JScript comment**

@echo off
cscript //E:JScript //nologo "%~f0" "%~1"
exit /b 0

***************End of JScript comment**/

WScript.Echo("====starting===");
var args=WScript.Arguments;
var folderC=args.Item(0);
if (WScript.Arguments.lengrh == 1 || args.Item(0)==""  ) folderC = ".";

WScript.Echo("Checking "+folderC);

function fileLIster(folderC){

    var fso = new ActiveXObject("Scripting.FileSystemObject");
    var folder = fso.GetFolder(folderC);

    var fc = new Enumerator(folder.files);
    var s = "";
    for (; !fc.atEnd(); fc.moveNext()) {
        s += fc.item() + " Created:[" + fc.item().DateCreated  + "] Modified:[" + fc.item().DateLastModified+"]" ;
        s += "\r\n";
    }
    WScript.Echo(s);

}
fileLIster(folderC);

这是一个简单的bat文件,它接受您要列出文件的目录的单个参数,并打印文件名,创建日期和修改日期。

答案 2 :(得分:2)

不是很快,但它有效,我认为它与语言环境无关:

@echo off
for %%F in (*) do for /f %%C in (
  'dir /tc "%%F"^|findstr "^[0-9]"'
) do for /f %%M in ("%%~tF") do echo "%%F", %%C, %%M

很多 更快,但我认为它取决于您所定义的语言环境时间格式。您可能必须更改在第一个FOR / F循环中捕获的标记:

@echo off
for /f "tokens=1,4*" %%A in (
  'dir /a-d /tc *^|findstr "^[0-9]"'
) do for /f %%M in ("%%~tC") do echo "%%C", %%A, %%M

我的时间格式为HH:MM AM。如果你的时间格式是没有AM / PM的24小时格式,那么我认为你需要"tokens=1,3*"

答案 3 :(得分:0)

如果您想在 PowerShell 中看到这样的内容:

 Directory: C:\project\CNN I\Maya                             

Mode                 LastWriteTime         Length Name 
----                 -------------         ------ ---- 
-a----         1/11/2021  11:36 PM          32187 ocean wake foam.JPG                                                   
-a----          1/6/2021  12:28 AM         121100 ocean_clean.ma                                                        
-a----          1/4/2021   3:59 PM         122199 ocean_clean_1.ma           

请试试
> get-childitem | sort-object -property name, creationtime, lastwritetime

您没有看到创建日期,但它实际上是按名称和创建日期 (creationtime) 然后是修改日期 (lastwritetime) 排序的。如果您想验证这一点,请尝试> get-childitem | sort-object lastwritetime。它将按修改日期列出文件。