aichiyu 发表于 2023-10-18 14:11

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

离人心上秋意浓 发表于 2023-10-20 14:39

感谢分享,正好有能用到的场景。 不过如果文件过大怎么办呢,比如我一次要获取几十万页图片的所有详细信息,那txt文件得几百M{:301_1007:}

shengchiqie 发表于 2023-10-18 14:48

谢谢分享

aichiyu 发表于 2023-10-20 20:02

离人心上秋意浓 发表于 2023-10-20 14:39
感谢分享,正好有能用到的场景。 不过如果文件过大怎么办呢,比如我一次要获取几十万页图片的所有详细信息 ...

应该没那么大

rocky200133 发表于 2023-10-25 15:02

要自己改改,不然也没有多大用处
页: [1]
查看完整版本: power shell 生成目录下包括相对路径、文件大小、文件修改日期、MD5 和 SHA-1