在 Windows 上是否有命令可以获取文件的所有属性,包括其编码格式(这条信息对我来说非常重要)?我在 Linux 中寻找类似于 stat 的东西
尽管我知道使用 Powershell 也可以实现,但我还是更喜欢使用可以在命令提示符或批处理脚本中使用的命令。
答案1
您可以使用 WMIC 功能来执行此操作。
例如 :
F:>> wmic datafile where Name="anyfile.txt"
获取有关 anyfile.txt 的所有信息。除了使用 WMIC,您还可以使用 CMD 和 powershell。并且您可以使用 GET 参数来获取指定的信息。
例如:
F:>> wmic datafile where Name="F:\\ekojs.txt" get Description,Path,Status,Version
编辑 : 尝试使用这个来检查 WMIC 功能:
F:>> wmic datafile /?
获取有关如何使用它的帮助。
命令 :
wmic datafile where Name="F:\\ekojs.txt" get Description,Name,FileType >> eko_wmic.txt
eko_wmic.txt 中的输出:
Description FileType Name
f:\ekojs.txt Text Document f:\ekojs.txt
希望这会对你有帮助。
答案2
以上一个答案为基础。您可以使用它wmic datafile
来获取有关文件的信息,但必须提供完整路径像这样将斜线加倍
wmic datafile where Name="F:\\anyfile.txt"
正如您所看到的,这会使控制台变得难以阅读:
但是如果你把它导入到文本文件中,它就很容易读懂了
wmic datafile where Name="F:\\anyfile.txt" >> fileprops.txt
幸运的是,wmic
可以将信息格式化为列表,然后它实际上非常有用。
wmic datafile where Name="F:\\anyfile.txt" list /format:list
然后,您可以仅为简化视图提供这些属性,请注意,必须删除list
关键字。
>wmic datafile where Name="G:\\ipcamera.log" get Hidden,FileSize,Name /format:list
FileSize=20
Hidden=FALSE
Name=G:\ipcamera.log
一点小知识,wmic 是最终成为 PowerShell 的基础!
答案3
您可以使用任何能够使用 COM 对象的脚本语言(例如 vbscript 和 powershell)通过 Shell.Application 对象访问文件的扩展属性(标题、持续时间、帧速率等)。遗憾的是,cmd 没有直接访问 Shell 对象的方法,您必须借助其他脚本语言才能访问 Shell 对象。
从 cmd 提示符窗口运行以下命令将以 100ns 为单位(而不是毫秒)显示视频文件的持续时间。
PowerShell -Command "$FilePath='C:\Videos\Test.mp4'; Write-Host ((New-Object -COMObject Shell.Application).NameSpace((Split-Path -Parent -Path $FilePath))).ParseName((Split-Path -Leaf -Path $FilePath)).ExtendedProperty('System.Media.Duration')"
有关该命令的其他信息,请访问在 PowerShell 中枚举文件属性
答案4
只需花两天时间尝试通过脚本或命令行编写 Windows 文件资源管理器中使用的评级。阅读很容易,请参阅其他答案,编写则是另一回事。最后找到了一个具有 GUI 但也可以从命令行使用的工具。 Nirsoft 的 PropertySystemView
示例:将 mp4 的评级设置为最低值
PropertySystemView.exe /SetProperty "d:\test.mp4" "System.Rating" 1
其他一些例子:
Export the list of all properties of 1.mp4 file into csv file
PropertySystemView.exe /Filename "c:\temp\1.mp4" /scomma "c:\temp\mp4_properties.csv"
Export the list of all properties on your system into html5 file
PropertySystemView.exe /AllProperties /shtml "c:\temp\all_system_properties.html"
Set the 'Media Created' date/time of single .mp4 file.
PropertySystemView.exe /SetProperty "c:\temp\1.mp4" "System.Media.DateEncoded" "2018/11/23:08:10:30.000"
Set the 'Media Created' date/time of all .mp4 files on c:\myfiles folder
PropertySystemView.exe /SetProperty "c:\myfiles\*.mp4" "System.Media.DateEncoded" "2015/10/15:00:00:00.000"
Copy the value of System.DateCreated property into the System.Media.DateEncoded property
PropertySystemView.exe /CopyProperty "C:\temp\1.mp4" System.DateCreated System.Media.DateEncoded
Remove the comment from all .mp4 files on c:\myfiles folder
PropertySystemView.exe /RemoveProperty "c:\myfiles\*.mp4" "System.Comment"
Set the 'Date Taken' value of all .jpg files on c:\pictures folder
PropertySystemView.exe /SetProperty "c:\pictures\*.jpg" "System.Photo.DateTaken" "2019/11/01:10:00:00.000"
Set the last saved date of the specified Excel file:
PropertySystemView.exe /SetProperty "c:\temp\myfile.xlsx" "System.Document.DateSaved" "2019/10/20:11:22:33.000"
Set the 'Content Created' date/time of the specified Excel file:
PropertySystemView.exe /SetProperty "c:\temp\myfile.xlsx" "System.Document.DateCreated" "2019/01/31:22:59:50.000"
Set the authors of all Excel files on c:\myfiles folder:
PropertySystemView.exe /SetProperty "c:\myfiles\*.xlsx" "System.Author" "NirSoft"
Set the 'Last Saved By' value of all Excel files on c:\myfiles folder:
PropertySystemView.exe /SetProperty "c:\myfiles\*.xlsx" "System.Document.LastAuthor" "NirSoft"
Set the title of Excel file:
PropertySystemView.exe /SetProperty "c:\myfiles\1.xlsx" "System.Title" "This is my Excel file"
Set the 'Last Saved By' value of MS-Word file:
PropertySystemView.exe /SetProperty "c:\myfiles\mydoc.docx" "System.Document.LastAuthor" "NirSoft"
Set the System.AppUserModel.ID property of a window that its handle is 010C0A35 to MyWindow
PropertySystemView.exe /SetPropertyWindow 010C0A35 "System.AppUserModel.ID" "MyWindow"
Open the location of the specified .jpg file in Google Maps:
PropertySystemView.exe /Filename "C:\temp\20200719_090250.jpg" /OpenGoogleMaps