- <#*,:&cls
- @echo off
- cd /d "%~dp0"
- powershell -C "Set-Location -LiteralPath ([Environment]::CurrentDirectory);. ([ScriptBlock]::Create((Get-Content -LiteralPath \"%~f0\" -ReadCount 0 | Out-String)))"
- pause
- exit /b
- #>
- # 获取当前目录及子目录的MP4视频信息,保存到 .mp4.log
- $conVideoSearchPattern = "*.mp4" #'视频类型
- $conRECURSE = $true #' 是否遍历子目录
- # ' shell content filter enum
- $SHCONTF_CHECKING_FOR_CHILDREN = 0x00010
- $SHCONTF_FOLDERS = 0x00020
- $SHCONTF_NONFOLDERS = 0x00040
- $SHCONTF_INCLUDEHIDDEN = 0x00080
- $SHCONTF_INIT_ON_FIRST_NEXT = 0x00100
- $SHCONTF_NETPRINTERSRCH = 0x00200
- $SHCONTF_SHAREABLE = 0x00400
- $SHCONTF_STORAGE = 0x00800
- $SHCONTF_NAVIGATION_ENUM = 0x01000
- $SHCONTF_FASTITEMS = 0x02000
- $SHCONTF_FLATLIST = 0x04000
- $SHCONTF_ENABLE_ASYNC = 0x08000
- $SHCONTF_INCLUDESUPERHIDDEN = 0x10000
-
- $shell = New-Object -ComObject Shell.Application
- function Format-FileSize {
- # output: string
- param (
- [long]$FileSize
- )
- switch ($FileSize) {
- { $_ -lt 1KB } { return "{0}Bytes" -f $_ }
- { $_ -lt 1MB } { return "{0:F2}KB" -f ($_ / 1KB) }
- { $_ -lt 1GB } { return "{0:F2}MB" -f ($_ / 1MB) }
- { $_ -lt 1TB } { return "{0:F2}GB" -f ($_ / 1GB) }
- { $_ -lt 1PB } { return "{0:F2}TB" -f ($_ / 1TB) }
- Default { return "{0:F1}PB" -f ($_ / 1PB) }
- }
- }
- function GenFolderItem {
- param (
- $folderItem
- )
- Write-Host $folderItem.Name
- Set-Content -LiteralPath ($folderItem.Path + '.log') -Value $(
- '【影片名称】:{0}' -f $folderItem.Name
- '【影片格式】: MP4'
- '【影片大小】:{0}' -f (Format-FileSize $folderItem.Size)
- '【影片时间】:{0}' -f ([timespan]::FromTicks($folderItem.ExtendedProperty("System.Media.Duration")))
- '【影片截图】:'
- )
- }
- function GenFolder {
- param (
- $shellFolder
- )
- if ($null -eq $shellFolder -or [convert]::IsDBNull($shellFolder)) {
- return
- }
- $folderItems = $shellFolder.Items()
- $null = $folderItems.Filter($SHCONTF_NONFOLDERS -bor $SHCONTF_INCLUDEHIDDEN -bor $SHCONTF_INCLUDESUPERHIDDEN, $conVideoSearchPattern)
- foreach ($folderItem in $folderItems) {
- GenFolderItem $folderItem
- }
- if ($conRECURSE) {
- $null = $folderItems.Filter($SHCONTF_FOLDERS -bor $SHCONTF_INCLUDEHIDDEN -bor $SHCONTF_INCLUDESUPERHIDDEN, "*.*")
- foreach ($folderItem in $folderItems) {
- GenFolder $folderItem.GetFolder()
- }
- }
- }
- # main
- GenFolder $shell.Namespace((Convert-Path .))
复制代码 批处理保存 ANSI 编码 |