PowerShellで特定の文字列を含むファイルをコピーする方法

以前お仕事で必要になって作成したので備忘録として投稿します。

概要

PowerShellを使って、特定の文字列がファイルの名前に含まれる場合、そのファイルを別の場所へコピーします。

ついでにファイルが何個見つかったか数えてログファイルに追記します。

コード

実際のコードはこんな感じです。

$FromFolder = “C:\From\Folder”
$ToFolder = “C:\To\Folder”
$Num = 0
$ScriptLogFile = “C:\Log\Copy.log”
$TimeStamp = Get-Date –Format “yyyy/MM/dd HH:mm:ss”
$LogMessage = “”

$KeyWord = “KeyWord”

$ItemList = Get-ChildItem –Pate $FromFolder

foreach($Item in $ItemList){
	if($Item.Name.contains(“$KeyWord”)){
		Copy-Item $Item.fullname $ToFolder
		$Num = $Num + 1
	}
}

$LogMessage = $TimeStamp + “: “ + $Num + “ files found.”
Write-Output $LogMessage | Out-File –FilePath $ScriptLogFile -Append

コードの説明

$FromFolderで指定したフォルダから$KeyWordを含むファイルを検索し、見つかればそのファイルを$ToFolderにコピーします。さらに、コピーしたファイルの個数を$Numでカウントし、$ScriptLogFileで指定したファイルに時間とともに記録します。

めっさん
  • めっさん
  • 当サイトの管理人。ニューヨークの大学を飛び級で卒業。その後日系企業でグローバル案件に携わる。大小様々な企業を転々としながら、マレーシアやアメリカへの赴任経験を持つ。バイリンガルITエンジニアとしていかに楽に稼ぐか日々考えている。年齢は秘密だけど定年も間近かな。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です