윈도우 탐색기에서는 여러 폴더에 있는 특정 파일들을 복사하는 기능이 없죠.

저의 경우에는 업무상 여러 폴더에 있는 특정파일들을 다른 경로에 동일한 구조로 복사해야 하는 경우가 빈번합니다.


매번 탐색기로 작업을 하자니 너무 번거로와서 파워쉘로 만들어 봤습니다.

복사할 파일이 다를 경우 스크립트를 수정해야 하긴 하지만 하나하나 복사하는 것보다는 좀 더 수월합니다. 


자 스크립트 나갑니다.

# filename : copy_files.ps1
# author : simmanix
# date : 2016-05-18 16:40
 
$ROOT_DIR= $PSScriptRoot
echo $ROOT_DIR
$DEST_PATH="DestPath"
 
$Src_Nation="USA"
 
$Files = New-Object System.Collections.ArrayList
$Files += "TTF\TTFInfo.xml"
$Files += "Config\NationInfo.xml"
 
function fCopyFile ()
{
	$D_PATH=$args[0]
	$File=$args[1]
 
	If ( $args.Count -lt 2 )
	{
		return
	}
 
	echo "cur path = $D_PATH"
	echo "cur file = $File"
	echo "cp $ROOT_DIR\$DEST_PATH\$Src_Nation\$File $ROOT_DIR\$M_TYPE\$D_PATH\$File"
 
	& cp $ROOT_DIR\$DEST_PATH\$Src_Nation\$File $ROOT_DIR\$M_TYPE\$D_PATH\$File
}
 
cd .\$DEST_PATH
 
$ARR_NATION = Get-ChildItem -Directory -Name
 
for( $i = 0 ; $i -lt $ARR_NATION.Count ; $i++ )
{
	$NATION = $ARR_NATION[$i]
 
	If ( $Src_Nation -eq $NATION )
	{
		continue;
	}
 
	for( $j = 0 ; $j -lt $Files.Count ; $j++ )
	{
		fCopyFile $NATION $Files[$j]
	}
 
	cd $ROOT_DIR
}


설명


$Files += "여기에 복사하고자 하는 파일들을 추가합니다.txt"

$ARR_NATION -> 복사하고자 하는 대상 폴더입니다. 위에서는 특정 폴더내의 모든 폴더에 넣는 코드입니다. 여러분들은 $Files 처럼 만들고 사용하는 것이 좋겠죠?


나머지는 충분히 분석가능하리라 생각합니다.



'Programming > PowerShell' 카테고리의 다른 글

VisualStudio 의 빌드이벤트에 Powershell 사용하기  (0) 2016.05.24
PowerShell 설정  (0) 2016.05.24

+ Recent posts