查询这两个日期的最明智的方法是什么。 PowerShell或Windows Batch解决方案是首选。 我想有一个如上所述的列表:
文件名,创建日期,上次修改
我知道: Dir有/ t:[A,W,C]但是找不到一次显示多个日期的方法。 对于文件,@ fdate @ftime只查询修改日期。
答案 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
。它将按修改日期列出文件。