在Win10下用命令查看文件的MD5值

第一步 打开Windows PowerShell

第二步 确保文件路径正确

默认C:\Users\username>

若不在此路径可用下述2种方法:

①将文件移动至上述路径

②在Windows PowerShell中直接更换路径

例如:文件位于D盘1文件夹中,则输入:

D:
cd 1/

第三步 输入以下代码

certutil -hashfile 文件名 MD5
<think>我们是在Windows 10环境下,需要删除同一目录下MD5相同的重复文件。由于Windows本身没有内置的md5sum命令,我们可以通过以下步骤实现: 1. 使用PowerShell计算文件MD5哈希。 2. 比较这些哈希,找出重复的文件。 3. 删除重复文件,保留一个副本。 ### 方法一:使用PowerShell脚本 以下是一个PowerShell脚本,用于查找并删除同一目录中重复的MD5文件(保留每个重复组中的第一个文件): ```powershell # 设置目标目录,默认为当前目录 $directory = "." # 获取目录下所有文件 $files = Get-ChildItem -Path $directory -File -Recurse # 用于存储MD5哈希和文件路径的哈希表 $hashTable = @{} foreach ($file in $files) { # 计算文件MD5哈希 $hash = Get-FileHash -Path $file.FullName -Algorithm MD5 | Select-Object -ExpandProperty Hash # 如果该哈希已经存在,则将此文件标记为重复 if ($hashTable.ContainsKey($hash)) { # 输出重复文件信息 Write-Host "发现重复文件: $($file.FullName) 与 $($hashTable[$hash])" # 删除重复文件 Remove-Item -Path $file.FullName -Force Write-Host "已删除: $($file.FullName)" } else { # 否则,将此哈希和文件路径存入哈希表 $hashTable[$hash] = $file.FullName } } ``` **注意:** - 此脚本会递归地处理子目录(`-Recurse`),如果不需要递归,可以去掉。 - 脚本会保留每个重复组中第一个出现的文件,删除后续重复的文件。 - 在删除文件前,请确保已备份重要数据,因为删除操作不可逆。 ### 方法二:使用命令行工具(需要安装额外软件) 如果希望使用类似Linux的命令行方式,可以安装Windows版本的GNU工具(如通过Git Bash或Cygwin)或使用Windows Subsystem for Linux (WSL)。以下是使用Git Bash(包含find, md5sum, sort, awk, xargs等命令)的方法: 1. 安装Git for Windows(包含Git Bash):https://git-scm.com/download/win 2. 打开Git Bash,进入目标目录,执行以下命令: ```bash find . -type f -exec md5sum {} \; | sort -k 1 | awk 'a[$1]++{print $2}' | xargs -t -i rm -f {} ``` 命令解释: - `find . -type f -exec md5sum {} \;`:递归查找当前目录下所有文件并计算MD5。 - `sort -k 1`:按第一列(MD5)排序。 - `awk 'a[$1]++{print $2}'`:当同一MD5出现第二次及以后时,打印对应的文件名(即重复文件)。 - `xargs -t -i rm -f {}`:删除这些重复文件(`-t`表示先打印命令再执行,`-i`允许使用`{}`替换)。 **注意:** 此命令会直接删除重复文件,且不会保留每个重复组中的第一个文件,而是保留第一个出现的文件并删除之后出现的重复文件(因为awk在第一次遇到某个MD5时不会打印,第二次及以后才会打印)。 ### 方法三:使用第三方工具 Windows下有一些图形化工具可以方便地查找重复文件,例如: - **Duplicate Cleaner Free**:免费且功能强大。 - **CCleaner**:带有重复文件查找功能。 - **Auslogics Duplicate File Finder**:免费工具。 这些工具通常提供图形界面,可以预览文件并选择保留哪些文件。 ### 安全提示 在执行删除操作前,请务必备份重要文件,以防误删。 --- §§相关问题§§ 1. 如何在Windows PowerShell中计算文件的SHA256哈希? 2. 有哪些Windows平台下的重复文件查找工具推荐? 3. 如何通过Python脚本在Windows中实现文件去重?</think>在Windows 10系统中删除MD5相同的重复文件,可以通过PowerShell脚本实现。以下是详细步骤和脚本: ### 方法:使用PowerShell脚本删除重复文件 ```powershell # 设置目标目录 $targetDir = "C:\Your\Target\Directory" # 替换为你的目录路径 # 创建哈希表存储MD5文件路径 $hashTable = @{} # 获取目录下所有文件 Get-ChildItem -Path $targetDir -File -Recurse | ForEach-Object { $file = $_.FullName # 计算MD5哈希 $hash = (Get-FileHash -Path $file -Algorithm MD5).Hash # 检查是否重复 if ($hashTable.ContainsKey($hash)) { Write-Host "发现重复文件: $file (与 $($hashTable[$hash]) 相同)" # 删除重复文件 Remove-Item -Path $file -Force Write-Host "已删除: $file" } else { # 存储第一个出现的文件 $hashTable[$hash] = $file Write-Host "保留文件: $file" } } Write-Host "去重完成!保留文件数: $($hashTable.Count)" ``` ### 操作步骤: 1. **打开PowerShell**: - 按 `Win + X` 选择 "Windows PowerShell (管理员)" 2. **执行脚本**: - 复制上述脚本 - 修改 `$targetDir` 为你的目标目录 - 粘贴到PowerShell执行 3. **安全机制**: - 脚本默认保留每组重复文件中**最先扫描到**的文件 - 删除前会显示对比信息,确认无误后才删除 - 添加 `-WhatIf` 参数可模拟运行(不实际删除): ```powershell Remove-Item -Path $file -Force -WhatIf ``` ### 关键组件说明: 1. **`Get-FileHash`** Windows内置的哈希计算命令,支持MD5/SHA1/SHA256等算法[^1] 2. **哈希表去重** 利用哈希表(`@{ }`)实现O(1)时间复杂度的重复检测 3. **递归处理** `-Recurse` 参数自动处理子目录 4. **安全删除** `-Force` 参数覆盖只读文件,删除前显示确认信息 ### 替代方案:使用图形化工具 1. **Duplicate Cleaner**(免费) - 可视化界面操作 - 支持多种去重方式(内容、文件名、图片相似度) - 官网:https://www.duplicatecleaner.com/ 2. **CCleaner**(内置重复查找器) - 工具 → 重复查找器 - 可自定义扫描条件 > **注意**:操作前建议备份重要文件。系统文件请勿随意删除。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值