날짜를 이름으로 갖는 파일이 있는데 그 파일 내용을 파워쉘 스크립트로 주기적으로 치환을 해야할 일이 있었는데 그 때 작성했던 내용입니다.

아주 간단하게 작성을 해봤는데요

 

우선 배치 파일 내용입니다.

 

==================================================================================================================

@echo off

set var_date=20140205


Powershell.exe -noprofile -executionpolicy bypass -file "C:\Users\3\Desktop\test\powersh_test.ps1" %var_date%

exit

==================================================================================================================

 

보면 날짜를 var_date에 넣어줬습니다.(날짜 구하는 스크립트는 제 블로그 Windows / Script 란에 있습니다)

그리고 간단하게 파워쉘 스크립트를 실행시킵니다.

여기서 var_date의 값을 파워쉘로 전달해주기 위해 빨간색을 표시 한 것 처럼 써주시면 됩니다.

그러면 파워쉘 내에서 인자값으로 받아들일 수 있더군요

 

파워쉘 내용

==================================================================================================================

$date=$args
$test=Get-Content C:\Users\3\Desktop\test\BACKUP_$date.txt
$test -creplace '전체','Total' -creplace '복사됨','Copied' -creplace '건너 뜀','Passed' -creplace '불일치','Missmatch' -creplace '실패','Failed' -creplace '추가','Add' -creplace '디렉터리 :   ','Directory :' -creplace '파일','File' -creplace '바이트',' Byte' -creplace '시간','Time' -creplace '속도','Speed' -creplace '초','Sec' -creplace '메가','M' -creplace '분','Min' -creplace '종료됨','EndTime' -creplace '년 ','-' -creplace '월 ','-' -creplace '일','' -creplace '화요','Tue' -creplace '오전','AM' >> C:\Users\3\Desktop\test\result.txt

==================================================================================================================

파워쉘 내용을 보면 date라는 변수에 args라는 값을 넣습니다.

args는 다들 알고 계신 그 값 맞습니다.

배치 파일에서 인자값을 한 개만 줬기 때문에 따로 지정을 하지 않고 args만 잡아줘도 됩니다.(코딩쪽을 몰라서 원래 그런건지는 잘 모르겠내요..)

굳이 변수에 따로 저장하지 않아도 파란색으로 표시된 부분에 바로 $args를 입력하셔도 되지 않을까 싶습니다.

이렇게 간단한거였는데 정작 저는 꽤 긴 시간을 검색을 해서 찾았내요..

아마 조금 더 수정을 하면 한 개의 인자값이 아니라 여러 개의 인자값도 파워쉘로 넘겨줄 수 있지 않을까 싶습니다.

어쨌든 이렇게 작성을 하고 작업 스케줄러에 배치파일을 등록하면 주기적으로 파일내용을 치환할 수 있습니다 ~

아, 그리고 보라색으로 표시된 부분은 리디렉트로 파일을 저장한건데 Out-File을 이용하시면 좀 더 저장할 때 파일에 대한 설정을 할 수 있습니다.

가령 파일 인코딩이라던지 그런 것들을 설정 할 수 있더라구요 ~

 

(치환 내용이 저렇게 지저분한건 .. 아시는분은 아시겠지만 robocopy 로그를 영어로 변환하는 내용입니다.. 시간이 없어 급히 저렇게 만들었지만 혹시 robocopy 한글 Windows에서 영어로 로그 남게 하는거 아시는분은 연락좀 주세요 ㅠㅠ)

' 2016년 이전 > PowerShell' 카테고리의 다른 글

PowerShell로 텍스트 치환하기  (0) 2014.01.22

+ Recent posts