创建一个包含文件名,创建日期,修改日期的列表
问题描述:
查询两个日期的最明智的方法是什么? PowerShell或Windows批处理解决方案是首选。 我想有作为主题描述的列表:创建一个包含文件名,创建日期,修改日期的列表
文件名,创建日期,最后修改
我知道: 风向有/ T:A,W,C]但不能找到一种方法来一次显示多个日期。 对于只有查询修改日期的@fdate @ftime文件。
答
如果PowerShell是可以接受的:
Get-ChildItem | Select-Object -Property Name, CreationTime, LastWriteTime
答
wmic datafile where (drive="C:" and path="\\somedir\\somesubdir\\") get Caption,CreationDate,LastModified
这不是一个完整的剧本,但只是一个example.Change驱动器和路径的目录你想(在路径双斜线的心)名单。您还应该注意WMIC
输出是unicode(与cmd不同) 而WMIC在XP家庭版中不可用。
您还可以使用构建在JScript(每个窗口有它),并创建一个混合.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);
这是一个简单的批处理文件它接受一个参数,用于列出要列入文件的目录并输出文件名,创建日期和修改日期。
答
不是特别快,但它的作品,我认为这是语言环境无关:
@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*"
把'Get-ChildItem'传送到'Select-Object'中会有效果。这是有据可查的 – Matt 2014-09-22 15:12:32