ソースフォルダーからコピー先フォルダーにファイルをコピーしようとしていて、そのファイルの名前を変更しようとしています。Powershellファイルのコピーと名前の変更
$Source = "C:\Source"
$File01 = Get-ChildItem $Source | Where-Object {$_.name -like "File*"}
$Destination = "\\Server01\Destination"
Copy-Item "$Source\$File01" "$Destination\File01.test" -Force -
Confirm:$False -ErrorAction silentlyContinue
if(-not $?) {write-warning "Copy Failed"}
else {write-host "Successfully moved $Source\$File01 to
$Destination\File01.test"}
問題はGet-ChildItem
は、ファイルが見つからない場合は、エラーメッセージを投げるのではなく、あなたに空白を与えていないので、何のファイルがFile*
という名前のない場合、私は先File01.test
というフォルダで終わるということです$Source
に存在します。
もし存在すれば、コピー操作はうまくいっています。しかし、一致するファイルが$Source
に存在しない場合は、フォルダを作成する必要はなく、エラーメッセージがログファイルに記録され、ファイル操作が発生しないようにしたいだけです。