在Powershell DIR列表中强制使用日期格式

问题描述

我正在尝试编写一个增强的目录实用程序(使用python),该实用程序对通过命令提示符DIR命令获得的许多目录列表进行后处理。问题是我需要使用YYYY-MM-DD HH:MM:SS的特定不可知格式的datetime输出。

DIR给我:

27-Apr-17  06:18 p.m.                56 cq.bat
27-Apr-17  06:13 p.m.                27 cqr.bat
27-Apr-17  06:15 p.m.                69 cqu.bat
06-Jul-16  08:43 a.m.               164 cr.bat
15-Jun-16  12:35 p.m.                36 crb.bat
26-Mar-16  01:41 p.m.               102 cru.bat
25-May-16  04:11 p.m.                62 ct.bat
07-Mar-16  07:48 a.m.                71 ctr.bat
患有以下疾病的
  • 时间没有秒
  • 日期时间宽度不一定在PC或区域设置之间固定。

类似地,powershell dir给我:

-a----       27-Apr-17  6:13 p.m.             27 cqr.bat
-a----       27-Apr-17  6:15 p.m.             69 cqu.bat
-a----       06-Jul-16  8:43 a.m.            164 cr.bat
-a----      15-Jun-16  12:35 p.m.             36 crb.bat
-a----       26-Mar-16  2:41 p.m.            102 cru.bat
-a----       25-May-16  4:11 p.m.             62 ct.bat
-a----       07-Mar-16  8:48 a.m.             71 ctr.bat

这对我来说有类似的问题,但是我认为Powershell在日期格式化部门可能会更加灵活。

我宁愿不必保存/恢复/恢复PC的日期格式字符串。

所需的输出为:

2017-04-27 18:13:12             27 cqr.bat
2017-04-27 18:15:33             69 cqu.bat
2016-07-06  8:43:53            164 cr.bat
2016-06-15 12:35:22             36 crb.bat
2016-03-26 14:41:53            102 cru.bat
2016-05-25 16:11:44             62 ct.bat
2016-03-07  8:48:23             71 ctr.bat

解决方法

您可以使用计算所得的属性和ToString()方法

Get-ChildItem $somepath | Select-Object @{n='LastWriteTime';e={$_.LastWriteTime.ToString("yyyy-MM-dd HH:mm:ss")}},Length,Name

这将为您提供您指定的3列。您也可以利用natural line breaks的可读性。

Get-ChildItem $somepath |
    Select-Object @{n='LastWriteTime';e={$_.LastWriteTime.ToString("yyyy-MM-dd HH:mm:ss")}},Name
,

如前所述,日期格式区分大小写(M代表几个月,而m代表分钟)。

要使用-f Format运算符对此属性使用计算所得的属性,您需要设置模板字符串以格式化要插入其中的属性。

尝试

Get-ChildItem 'ThePath' |
Select-Object @{n='LastWriteTime';e={'{0:yyyy-MM-dd HH:mm:ss}' -f $_.LastWriteTime}},Name

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...