2017-02-13 12 views
0

ここで簡単なスクリプトは、よく、少なくとも私はそれがあるべきだと思うが、私は、最終的な結果と問題を抱えていた場合:/else文とコピーアイテムを発行し

$a = Get-Content "content\file\location" 
$destfile = "destination\of\file" 
$source ="source\file\location" 
$dest = "c$\destination" 
$destfolder = "c:\folder\destination" 

foreach ($a in $a) { 
    if (Test-Connection $a -Count 1 -Quiet) { 
     if (Test-Path "\\$a\$destfile") { 
      Write-Host $a "File exists" -ForegroundColor Green 
     } else { 
      Write-Host $a "File is missing and will now be copied to $a\$destfolder" -ForegroundColor Red | 
       Copy-Item $source -Destination "\\$a\$dest" 
     } 
    } 
} 

問題は、それは、コピーしたファイルになることはありませんどこで私は間違えましたか?

ご協力ありがとうございます。

答えて

2

Write-Hostは、スクリーンに印刷する以外には何も送信せず、したがってCopy-Itemはコピーするものがありません。

ただ、代わりに前者では後者を配管Write-HostCopy-Itemを呼び出す:

$computerList = Get-Content "content\file\location" 
$destfile = "destination\of\file" 
$source ="source\file\location" 
$dest = "c$\destination" 
$destfolder = "c:\folder\destination" 

foreach ($computerName in $computerList) { 
    if (Test-Connection $computerName -Count 1 -Quiet) { 
     if (Test-Path "\\$computerName\$destfile") { 
      Write-Host $computerName "File exists" -ForegroundColor Green 
     } else { 
      Write-Host $computerName "File is missing and will now be copied to $computerName\$destfolder" -ForegroundColor Red 
      Copy-Item $source -Destination "\\$computerName\$dest" 
     } 
    } 
} 

も書式や命名をご覧ください。

+0

は完全に機能しました。どうもありがとうございました。いつものように、このコミュニティでは初心者に適切なパッチを当てることができます。ありがとうソーダ。 – NuckinFutz

関連する問題