gpt4 book ai didi

powershell - Windows 7 PowerShell复制项(如果较大)

转载 作者:行者123 更新时间:2023-12-02 23:38:06 25 4
gpt4 key购买 nike

我正在尝试将旧的OSX Aperture照片库存档到Windows文件夹。我想使用Copy-Item处理复杂的嵌套文件夹结构,并将它们全部转储到一个平面文件夹中。我认为以下命令可以满足我的大部分需求:

PS C:\> Copy-Item -Path E:\ApertureLib\*.jpg -Destination E:\Export -Recurse

有时原始JPG位于文件夹结构中。显然,这对于归档是更可取的。在一个称为“预览”的子文件夹中总会有一个较小的预览。如果原始文件不可用,我想复制此文件。预览和原始文件具有相同的文件名。

因此,我需要执行以下命令来处理文件名冲突:如果新文件较大,则覆盖旧文件。如果不是,则什么也不做。有任何想法吗?

最佳答案

也许像这样(未经测试):

$destination = "E:\Export"
Get-ChildItem "E:\ApertureLib" -Include *.jpg -Recurse | ForEach-Object {
$destinationName = Join-Path $destination $_.Name
if ( Test-Path -LiteralPath $destinationName ) {
$copyTheFile = $_.Length -gt (Get-Item -LiteralPath $destinationName).Length
}
else {
$copyTheFile = $true
}
if ( $copyTheFile ) {
Copy-Item $_ $destinationName -WhatIf
}
}
如果这按预期工作,则可以删除 -WhatIf以执行复制。

关于powershell - Windows 7 PowerShell复制项(如果较大),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50261240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com