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企業でグローバル案件に携わる。マレーシアに1.5年赴任した経験を持つ。バイリンガルITエンジニアとしていかに楽に稼ぐか日々考えている。

コメントする

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