【发布时间】:2021-12-15 04:25:26
【问题描述】:
我有一个包含大约 130 个文件的文件夹,我想使用 CMD 提示符生成一个包含所有文件名和最后修改日期的 .txt 文件。我已经研究了 DIR 和 .LastWriteTime 但我无法弄清楚。我对这个主题的所有搜索都导致使用 Powershell 或 Batch 或 Linux,但我没有任何这些资源,只有 CMD。我是使用 CMD 的新手,但最糟糕的是我大约一个月前完成了这项工作,我不记得我是如何完成这项工作的!令人难以置信的沮丧。
非常感谢!
编辑:如果有帮助的话,上次我使用了这样的命令(我忘记了,而且我这辈子似乎无法再次找到),它生成了以下文件,也许这可能作为我正在谈论的命令的视觉提示。再次感谢!
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2/10/2018 3:55 PM 162256779 mobizen_20180210_155420.mp4
-a---- 2/10/2018 4:18 PM 111595959 mobizen_20180210_161816.mp4
-a---- 2/10/2018 4:20 PM 32643884 mobizen_20180210_162027.mp4
-a---- 7/15/2018 6:15 PM 60733357 mobizen_20180715_181514.mp4
-a---- 8/5/2018 5:08 PM 126381736 mobizen_20180805_170721.mp4
-a---- 8/30/2018 4:53 PM 81903211 mobizen_20180830_165306.mp4
【问题讨论】:
-
您的问题中显示的命令输出来自 PowerShell,例如
Get-ChildItem -Path 'C:\Users\cangrejo\Music' -Filter *.mp4 -File。但是,这提供了比您需要的更多信息,因此您可能希望select仅您需要的部分,例如Get-ChildItem -Path 'C:\Users\cangrejo\Music' -Filter *.mp4 -File | Select-Object -Property LastWriteTime, Name。如果您想在 cmd 中执行此操作,那么也许这就是您想要的,For %G In ("C:\Users\cangrejo\Music\*.mp4") Do @Echo %~ntxG。我将留给您添加所需的命令以将每个命令输出到.txt文件。 -
该输出来自 PowerShell 命令:
Get-ChildItem -Path 'X:\somefolder' | Format-Table -AutoSize -
或者你甚至可以在 PowerShell 中使用它来稍微偏离网格,
Get-CimInstance -Query "Select * From Cim_DataFile Where Drive='C:' And Path='\\Users\\cangrejo\\Music\\' And Extension='mp4'" | Select-Object -Property @{Label = 'Name'; Expression = {Split-Path $_.Name -Leaf}}, @{Label = 'LastWriteTime'; Expression = {$_.LastModified}}。 -
您也可以使用
ForFiles实用程序在 cmd.exe 中执行任务,输出字符串的附加功能是双引号,例如%SystemRoot%\System32\forfiles.exe /P "C:\Users\cangrejo\Music" /M *.mp4 /C "%SystemRoot%\System32\cmd.exe /D /C \"If @IsDir==FALSE Echo @FDate @File\"".
标签: powershell batch-file cmd directory