PowerShellで特定の文字列を含むファイルをコピーする方法
2020/8/4
以前お仕事で必要になって作成したので備忘録として投稿します。
概要
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で指定したファイルに時間とともに記録します。