power shell 生成目录下包括相对路径、文件大小、文件修改日期、MD5 和 SHA-1
# 删除 "信息.txt" 文件(如果存在)Remove-Item -Path .\信息.txt -ErrorAction SilentlyContinue
function Process-Directory {
param (
$path
)
# 获取目录下的文件和子目录
$items = Get-ChildItem -Path $path
foreach ($item in $items) {
if ($item.PSIsContainer) {
# 如果是子目录,递归处理
Process-Directory -path $item.FullName
} else {
# 如果是文件,获取文件信息
$filePath = $item.FullName
$fileName = $item.Name
$fileSize = ::Round($item.Length / 1MB, 2)# 将文件大小转换为 MB 并保留两位小数
$fileLastModified = $item.LastWriteTime.ToString("yyyy年MM月dd日 HH:mm:ss")# 格式化文件修改日期
# 计算文件的 MD5 和 SHA-1 哈希值
$md5 = Get-FileHash -Algorithm MD5 -Path $filePath | Select-Object -ExpandProperty Hash
$sha1 = Get-FileHash -Algorithm SHA1 -Path $filePath | Select-Object -ExpandProperty Hash
# 获取相对路径
$relativePath = $filePath.Replace((Get-Location).Path + "\", ".\")
# 输出文件信息并追加到 "信息.txt" 文件,包括相对路径、文件大小、文件修改日期、MD5 和 SHA-1 哈希值
"所在目录: $relativePath" | Out-File -Append -FilePath .\信息.txt
"文件名称: $fileName" | Out-File -Append -FilePath .\信息.txt
"文件大小: $fileSize MB ($($item.Length) 字节)" | Out-File -Append -FilePath .\信息.txt
"文件修改日期: $fileLastModified" | Out-File -Append -FilePath .\信息.txt
"MD5: $md5" | Out-File -Append -FilePath .\信息.txt
"SHA1: $sha1`n" | Out-File -Append -FilePath .\信息.txt
#"`n" | Out-File -Append -FilePath .\信息.txt
}
}
}
# 设置当前目录
$currentDirectory = Get-Location
# 开始处理当前目录及其子目录
Process-Directory -path $currentDirectory
感谢分享,正好有能用到的场景。 不过如果文件过大怎么办呢,比如我一次要获取几十万页图片的所有详细信息,那txt文件得几百M{:301_1007:} 谢谢分享 离人心上秋意浓 发表于 2023-10-20 14:39
感谢分享,正好有能用到的场景。 不过如果文件过大怎么办呢,比如我一次要获取几十万页图片的所有详细信息 ...
应该没那么大 要自己改改,不然也没有多大用处
页:
[1]