繁体   English   中英

使用Powershell检查文件内容是否存在

[英]Check if file content exists with powershell

如果我的问题不清楚或格式不正确,请提前提出策略。 这是我第一次在这里发布。

我有一个简单的powerhshell脚本,可以将文件从一个文件夹复制到另一个文件夹(如果目标文件夹中尚不存在该文件)。 但是,我当前的问题是,尽管文件具有不同的名称,但它们可以具有完全相同的内容。 我希望脚本能够判断目标文件夹中是否已存在文件内容,如果存在,则不执行任何操作。 如果目标中尚不存在文件内容,则它将复制文件。 任何帮助表示赞赏。

$date = get-date
$path = "path1"
$destination = "path2" 
Foreach($file in (Get-ChildItem $path)) {
If($file.LastWriteTime -gt $date.date) 
{ 
    #Test to see if the file already exists in the destination.
    if (!(Test-path (join-path $destination $file.name)))
    {
       Copy-Item -Path $file.fullname -Destination $destination
    }
}

}

我将不得不与Kory Gill发表的内容保持一致。

使用get-filehash测试文件的哈希值以查看它们是否匹配。即使它们的文件名不同。 它对内容进行哈希处理。 请记住,任何差异都会创建不同的哈希。 一个文件而不是另一个文件中的任何空格或字符都会产生完全不同的哈希。 但是,如果您要查找完全匹配的内容,则效果最好。 使用-Algorithm SHA256因为SHA1和MD5或宣布不安全(可能得到碰撞),尽管它可能与SHA1很难拿到今天的冲突仍然除非你真的想。

if((Get-FileHash -Path <file1> -Algorithm SHA256).Hash -ne (Get-FileHash -Path <file1> -Algorithm SHA256).Hash)
{
    "Copy the file"
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM