遍历子目录,并(1)将文件复制到另一个目录(2)将其重命名为其md5哈希

pr0n

考虑以下目录结构:

rootdir
  subdir_1
     12345.tif
     56789.tif
  subdir_2
     00000.tif
  ...
  subdir_n
     99999.tif
     54321.tif
     54345.tif

我需要:

  1. 遍历此结构
  2. 计算每个tif文件的md5
  3. 将[md5.tif]复制到另一个文件夹(不考虑文件夹结构)。

因此,所需的输出将是:

newdir
   2070e4cfb8f24209647d3c9ec55098ee.tif
   52e31fe630cebe73cc959d371bd6b353.tif
   eec032f144f5af1be2b7f0535a2010d2.tif
   936ed95431293660e3499d88e5ae22b0.tif
   8bc884dce30d89b53b120adb8bd658b2.tif
   ec87470ae6683b539ea69004894e23dd.tif

我现在拥有了(在PS 2.0 bc中,我必须使用它):

Get-ChildItem "D:\rootdir" -filter *.tif |
  Foreach-Object {
    $content = Get-Content $_.FullName
    $md5     = New-Object -TypeName  

    System.Security.Cryptography.MD5CryptoServiceProvider
    $hash = [System.BitConverter]::ToString($md5.ComputeHash([System.IO.File]::ReadAllBytes($content)))

    ## Write-Host $hash = CB-A9-EB-00-92-18-06-71-D9-DD-7C-2A-08-D9-D9-EF

    Set-Content $_.FullName('newroot/'+ $hash +'.tif')
}

这里的第一个问题是MD5-介于两者之间。那么,我在这里做错了什么?

第二,为什么新文件未写入文件系统?

任何帮助将不胜感激!

黄昏

首先,这些破折号是的结果[System.BitConverter]::ToString()您可以根据需要删除它们。其次,如果要复制文件,则应调用Copy-Item而不是Set-Content像这样:

$md5 = New-Object -TypeName System.Security.Cryptography.MD5CryptoServiceProvider
Get-ChildItem "D:\rootdir" -filter *.tif -Recurse |
Foreach-Object {
    $hash = [System.BitConverter]::ToString($md5.ComputeHash([System.IO.File]::ReadAllBytes($_.fullname)))
    $hash = $hash -replace "-","" # drop all dashes off $hash

    Copy-Item -Path $_.fullname -Destination "newroot/$hash.tif"
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将匹配文件从目录/子目录复制到另一个目录

来自分类Dev

将不包含特定文件的子目录复制到另一个目录

来自分类Dev

将文件和子目录与现有文件复制到另一个目录

来自分类Dev

将 css 文件从一个子目录复制到 CONTAINER BLOB 中的另一个子目录

来自分类Dev

将子目录中的多个文件重命名为其目录名称

来自分类Dev

将子目录从一个目录复制到另一个目录

来自分类Dev

将文件重命名为子目录

来自分类Dev

将名称不正确的文件从一个深层嵌套的目录(内容地址重命名)复制到一个Bash单行格式的另一个扁平子目录中?

来自分类Dev

将子目录中的pdf文件重命名为子目录的名称

来自分类Dev

如何在不丢失父目录的情况下将多个同名文件从子目录复制到另一个目录?

来自分类Dev

将目录的结构(包括子目录)复制到另一个位置并移动一定百分比的文件

来自分类Dev

如何在vb.net中一个接一个地移动文件并将其从目录重命名为另一个

来自分类Dev

如何在vb.net中一个接一个地移动文件并将其从目录重命名为另一个

来自分类Dev

Powershell:将父文件夹中的所有子目录和内容复制到另一个文件夹目标

来自分类Dev

将文件复制到子目录并重命名

来自分类Dev

将文件从一个目录复制到另一个目录

来自分类Dev

将文件从一个目录复制到另一个目录

来自分类Dev

将文件从一个目录复制到另一个目录

来自分类Dev

将目录中的所有文件重命名为其文件名的md5哈希(不包含内容)

来自分类Dev

将目录中的所有文件重命名为其文件名的md5哈希(不包含内容)

来自分类Dev

以递归方式将输出 PDF 文件重命名为子目录名称 Powershell

来自分类Dev

UNIX如何将整个目录(子目录和文件)从一个位置复制到另一个位置并保留权限

来自分类Dev

根据子目录名称将文件从特定子目录复制到单个目录中,然后重命名

来自分类Dev

尝试将文件从当前目录复制到另一个目录

来自分类Dev

将目录中的文件复制到另一个目录

来自分类Dev

如何仅将文件夹从目录复制到另一个目录

来自分类Dev

将目录中的文件复制到另一个目录

来自分类Dev

如何将文件从另一个目录复制到当前目录?

来自分类Dev

使用cmd命令将文件从目录复制到另一个目录

Related 相关文章

  1. 1

    如何将匹配文件从目录/子目录复制到另一个目录

  2. 2

    将不包含特定文件的子目录复制到另一个目录

  3. 3

    将文件和子目录与现有文件复制到另一个目录

  4. 4

    将 css 文件从一个子目录复制到 CONTAINER BLOB 中的另一个子目录

  5. 5

    将子目录中的多个文件重命名为其目录名称

  6. 6

    将子目录从一个目录复制到另一个目录

  7. 7

    将文件重命名为子目录

  8. 8

    将名称不正确的文件从一个深层嵌套的目录(内容地址重命名)复制到一个Bash单行格式的另一个扁平子目录中?

  9. 9

    将子目录中的pdf文件重命名为子目录的名称

  10. 10

    如何在不丢失父目录的情况下将多个同名文件从子目录复制到另一个目录?

  11. 11

    将目录的结构(包括子目录)复制到另一个位置并移动一定百分比的文件

  12. 12

    如何在vb.net中一个接一个地移动文件并将其从目录重命名为另一个

  13. 13

    如何在vb.net中一个接一个地移动文件并将其从目录重命名为另一个

  14. 14

    Powershell:将父文件夹中的所有子目录和内容复制到另一个文件夹目标

  15. 15

    将文件复制到子目录并重命名

  16. 16

    将文件从一个目录复制到另一个目录

  17. 17

    将文件从一个目录复制到另一个目录

  18. 18

    将文件从一个目录复制到另一个目录

  19. 19

    将目录中的所有文件重命名为其文件名的md5哈希(不包含内容)

  20. 20

    将目录中的所有文件重命名为其文件名的md5哈希(不包含内容)

  21. 21

    以递归方式将输出 PDF 文件重命名为子目录名称 Powershell

  22. 22

    UNIX如何将整个目录(子目录和文件)从一个位置复制到另一个位置并保留权限

  23. 23

    根据子目录名称将文件从特定子目录复制到单个目录中,然后重命名

  24. 24

    尝试将文件从当前目录复制到另一个目录

  25. 25

    将目录中的文件复制到另一个目录

  26. 26

    如何仅将文件夹从目录复制到另一个目录

  27. 27

    将目录中的文件复制到另一个目录

  28. 28

    如何将文件从另一个目录复制到当前目录?

  29. 29

    使用cmd命令将文件从目录复制到另一个目录

热门标签

归档