【问题标题】:Write checksum per folder每个文件夹写入校验和
【发布时间】:2018-06-30 17:25:04
【问题描述】:

我正在尝试编写一个脚本,该脚本将通过目录树运行并为每个文件夹的内容生成校验和并将校验和写入该文件夹;除了将校验和写入文件夹之外,我已经设法使用以下代码完成所有操作,它当前正在将所有内容写入根目录。

FOR /R "C:\_input\test" /D %%a IN (*) DO md5deep64 -r "%%a" >> "%%a.md5"

我认为我可以使用各种修饰符 (%~I) 做点什么,但我并不高兴。有什么想法吗?

【问题讨论】:

  • 也许,>"%%a\%%~nxa.md5" 是你想要的; 虽然写入运行校验和的目录中的文件可能会是一个问题。您可能希望将其写入当前目录>"%%~nxa.md5",然后移动它Move /Y "%%~nxa.md5" "%%a"
  • 由于for /r /d 迭代所有子文件夹,-r 到 md5deep 是多余的,如果 IMO 是 FOR /R "C:\_input\test" /D %%a IN (*) DO md5deep64 "%%a\*" > "%%a.md5"
  • @LotPings 是的,运行 '-r' 两次感觉没有必要,但如果没有它,我似乎无法让 md5deep 创建散列。谢谢。

标签: batch-file command-line md5 checksum


【解决方案1】:

根据您和我自己的最新评论,我认为这可能是您想要的:

作为批处理文件:

@For /D %%A In ("C:\_input\test\*) Do @md5deep64 -r "%%A">"%%A.md5" & @Move /Y "%%A.md5" "%%A"

在命令行:

For /D %A In ("C:\_input\test\*) Do @md5deep64 -r "%A">"%A.md5" & @Move /Y "%A.md5" "%A"

注意md5deep64.exe 需要在当前目录或%Path% 中,否则您需要提供完整或相对路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多