如果目标存在则跳过文件复制 - PowerShell

Skip file copy if target exist - PowerShell

你能帮忙吗?我使用以下 PowerShell 代码将文件 (test.txt) 复制到每个用户的漫游文件夹中。有用。但如果 test-old.txt (这是以前重命名的文件)已经存在,我想跳过复制文件。预先感谢您的帮助。

仅供参考 - 如果可行的话,我很高兴拥有一个全新的代码。

$Source = '\ser04\h\AppsData\test.txt'

$Destination = 'C:\users\*\AppData\Roaming\SAP\Common\'

Get-ChildItem $Destination | ForEach-Object {Copy-Item -Path $Source -Destination $_ -Force}

假设 test-old.txt 的路径是每个用户的 ..\SAP\Common\ 文件夹,您只需要在现有代码中添加一个 if 条件来检查该文件是否存在于该文件夹中.一个简单的方法是使用 Test-Path.

如果您想定位 DefaultDefault User 文件夹,请记住添加 -Force 切换到 Get-ChildItem

$Source = '\ser04\h\AppsData\test.xml'
$Destination = 'C:\users\*\AppData\Roaming\SAP\Common\'

Get-ChildItem $Destination | ForEach-Object {
    
    $testOld = Join-Path $_.FullName -ChildPath 'test-old.txt'

    if(-not(Test-Path $testOld))
    {
        Copy-Item -Path $Source -Destination $_ -Force
    }
}