6UNote6

備忘録

【PowerShell】ファイルコピー file_copy

file_copy.ps1
 
#ファイルコピー
[String]$folderPath = (Get-Location).Path
[String]$destFolderpath = $folderPath + "\TEST"
[String]$logFilePath = $folderPath + "\log.log"
[String]$csvFilePath = $folderPath + "\path.txt"
[String]$filterName = "*GS*"
[String]$targerFilePath = ""
[String]$targetExt = ""
 
Write-Host ("フォルダ:" + $destFolderpath)
 
#フォルダ削除
if(Test-Path $destFolderpath){
  Write-Host ("フォルダを中身を含めて削除します。拡張子:" + $destFolderpath)
  Remove-Item $destFolderpath -Recurse
}else{
  Write-Host ("フォルダは存在しません。拡張子:" + $fileExt)  
 
#フォルダ作成
New-Item -ItemType Directory -path $destFolderpath
 
#CSVファイル読込
$arrLog = @()
$arrfilePath = Get-Content $csvFilePath
$arrfilePath.Length
 
[Int32]$cnt = 1
$get_date = Get-Date -Format "yyyyMMdd"
 
foreach ($path in $arrfilePath) {
#ファイル元のファイル特定
$targerFilePath = Get-Childitem $path -recurse -Include GS* -ErrorAction SilentlyContinue
$targetExt = [System.IO.Path]::GetExtension($targerFilePath)
Write-Host ("ファイルパス:" + $targerFilePath)
Write-Host ("拡張子:" + $fileExt)
 
#ファイル先のファイル作成
$get_time = Get-Date -Format "HHmmss"
$destFileName = $destFolderpath + "\" + [String]$get_date + "_" + [String]$get_time + [String]$cnt + "." + $targetExt
 
#ファイルコピー
Copy-Item $targerFilePath $destFileName | Wait-Process
$cnt += 1
#ログデータ
$arrLog += $targerFilePath + "コピー完了しました"
}
 
#ログ出力
Set-Content $logFilePath "コピー完了" -Encoding utf8
Add-Content $logFilePath $arrLog