안드로이드 탭 하나 장만해서 리눅스 올려볼까 생각 중...

우분투는 자체적으로 스마트폰용을 포팅 한게 있고..

특정 어플 사용하면 안드로이드 커널 공유하는 식으로 칼리 리눅스도 올리는거 같던데 ..

일단 폰으로 도전해볼까 ..

벽돌되면 답없는데..

일단 정보를 좀 모아야겠다 !

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

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

 

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

 

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

@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

스크립트를 짜다보면 .. 종종 어제 날짜나 며칠 전 날짜를 구해야할 때가 있는데

그 때 필요한 스크립트입니다.

예전에 어디선가 퍼와서 출처는 .. 기억이 잘 나지 않아요 .. (혹 원글 작성자분께서 이 글을 보고 요청하시면 글 내릴꼐요 ~)

요즘 자주 사용하고 있는데 기존에 퍼와서 쓰고 있던 소스에 약간 문제가 있더라구요

 

------------------기존---------------------

@echo off

for /f "tokens=1-3 delims=- " %%A in ('echo %DATE%') do (set YY=%%A&SET MM=%%B&SET DD=%%C)


set /a DD=1%DD%-107
set /a MM=1%MM%-100

if  %DD% GTR 0 goto end
set /a MM=%MM%-1

if %MM% GTR 0 goto leap

set /a DD=31
set /a MM=12
set /a YY=%YY%-1
REM echo %YY%, %MM%, %DD% -> 2005, 12, 31
goto end


:leap
set /a TT=%YY%/4
set /a TT=%TT%*4
if %YY% neq %TT% goto mon%MM%
if %MM% neq 2 goto mon%MM%
set /a DD=29
goto end


:mon1
:mon3
:mon5
:mon7
:mon8
:mon10
set /a DD=31
goto end

:mon2
set /a DD=28
goto end


:mon4
:mon6
:mon9
:mon11
set /a DD=30
goto end

:end
set /a DD=%DD% + 100
set DD=%DD:~1,2%
set /a MM=%MM% + 100
set MM=%MM:~1,2%

set date1=%YY%-%MM%-%DD%
set date2=%YY%-%MM%
set date3=%DD%
set date4=%YY%%MM%%DD%

 

echo %date1%
echo.
echo %date2%
echo.
echo %date3%
echo.
echo %date4%
echo.

pause

------------------기존---------------------

기존 소스를 가지고 오늘 날짜인 2월 5일을 기준으로 일주일 전인 1월 29일을 구하려면 파란색으로 표시된 곳의 숫자를 저렇게 -107로 잡아주면 되는데

기존 소스 상태로 배치파일을 돌려보면 아무리 해도 1월 31일로 나오게됩니다.

이유는 빨간색으로 표시되어있는 mon1 ~ mon11 같이 구분되어있는 곳이 있는데 정확하진 않지만 아마 전 달의 마지막 날짜를 지정해주는 것 같습니다.

보시면 알겠지만 값이 상수로 고정되어있습니다.

저 상태면 전 달의 날짜를 구하려해도 무조건 일수가 31이나 28, 30로 고정이 되게 되버리죠..

그래서 찬찬히 둘러보다 빨간색으로 표시된 곳에 연산을 해주면 될 것 같아서 아래 소스 처럼 변경을 해봤습니다.

 

------------------변경---------------------

@echo off

for /f "tokens=1-3 delims=- " %%A in ('echo %DATE%') do (set YY=%%A&SET MM=%%B&SET DD=%%C)


set /a DD=1%DD%-107
set /a MM=1%MM%-100

if  %DD% GTR 0 goto end
set /a MM=%MM%-1

if %MM% GTR 0 goto leap

set /a DD=31
set /a MM=12
set /a YY=%YY%-1
REM echo %YY%, %MM%, %DD% -> 2005, 12, 31
goto end


:leap
set /a TT=%YY%/4
set /a TT=%TT%*4
if %YY% neq %TT% goto mon%MM%
if %MM% neq 2 goto mon%MM%
set /a DD=29
goto end


:mon1
:mon3
:mon5
:mon7
:mon8
:mon10
set /a DD=31+%DD%
goto end

:mon2
set /a DD=28+%DD%
goto end


:mon4
:mon6
:mon9
:mon11
set /a DD=30+%DD%
goto end

:end
set /a DD=%DD% + 100
set DD=%DD:~1,2%
set /a MM=%MM% + 100
set MM=%MM:~1,2%

set date1=%YY%-%MM%-%DD%
set date2=%YY%-%MM%
set date3=%DD%
set date4=%YY%%MM%%DD%

echo %date1%
echo.
echo %date2%
echo.
echo %date3%
echo.
echo %date4%
echo.

pause

------------------변경---------------------

보시는 것 처럼 기존 빨간색 부분 뒤에 +%DD% 를 붙여줬습니다.

왜 저걸 붙였는지는.. 딱 뭐다라고 설명하기가 힘드내요...

어쨌든 저렇게 수정하고 나면 기준일에서 며칠 전이든 쉽게 구할 수가 있게 됩니다..

예를 들어 10일 전에 날짜를 원하면 파란색으로 강조되어있는 -107을 -110으로 변경하시면 됩니다 ~

 

급하게 작성하는거라 정말 두서 없이 써졌는데 .. 나중에 다시 손좀 봐야겠내요..

입사한지 이제 딱 한 달째

진심 아주 쬐끔 업무 익은거 같고

배우고 공부해야할게 너무너무 많다.

어제 오늘은.. 윈도우에서 제공하는 PowerShell이란걸 쪼금 만져봣다

스크립트도 한줄 짜보고 .. 나름 재미지내

덕분에 입사 한 달만에 공부할 목표가 생김

 

-공부할 꺼-

1. Windows Server 2008 R2

2. Windows PowerShell

 

일단 요 두개

Windows Server 2012도 공부해보고 싶은데 한글번역본이 안나왔내 아직.. 원서 싫어... 몰라...

 

PowerShell 공부할 생각하다가 문득 생각난건데 어느 정도 손에 익으면

Windows PowerShell로 스크립트 만들면 Unix/Linux Shell에서도 똑같이 작동하는 스크립트 짜는거

나름 공부 될듯 ? 아닌가..

일단 주말에 윈도 서버 책사고 파워쉘은 회사 책으로 공부해야지

 

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

2014. 03. 10.  (0) 2014.03.10
2014. 02. 17.  (0) 2014.02.18
2014. 01. 13.  (0) 2014.01.13
2013. 09. 21.  (0) 2013.09.21
2013. 09. 14.  (0) 2013.09.16

PowerShell ..이 녀석 참.. 재미난 녀석인거같다..

생긴건 CMD랑 별 다른게 없는데 기능은 엄청나구만..

닷넷기반이라 그런지 뭔가 프로그래밍하는 듯한 느낌도 들고 나름 물건일세

덕분에 윈도우에서 리눅스의 손맛(?)이 느껴지는거 같은데..?

윈 서버 공부하면서 파워쉘도 같이 해야겠다 나름 꿀잼

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

옵티머스 lte3 ..  (0) 2014.02.18
탭하나 사서 ..  (0) 2014.02.18
전역도 했고 입사도 했고 ..  (0) 2014.01.13
리눅스 마스터 1급 2차(실기) 기출문제 모음  (1) 2013.09.22
리눅스 마스터 1급 1302 가답안  (0) 2013.09.18

퍼오기 기능이 따로 없는 곳이고..

긁어오자니 눈팅만하는 사이트라 그냥 링크만 따왔습니다.

Azure가 뭔지 찾다가 여기 사이트에 있을듯하여 봤는데 역시나 있더군요

 

아주아주 간단하게 Azure에 대해서 말하자면 결국은 MS사에서 제공하는 클라우딩 환경이었내요.

윈도우도 이것저것 신기한게 참 많내요 ..

 

링크 : http://www.sqler.com/368223

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

BitLocker로 드라이브 암호화  (3) 2014.04.23

간단하게 어떤 텍스트 파일 내에 있는 문자나 문자열을 치환하고 싶을 때 사용하면 될 것 같습니다.

 

대상 텍스트 파일 : Replace_text.txt

Replace_text.txt 파일 내용

 

 

테스트할 파일의 내용을

'문자'는 텍스트로

'1'은 A로

'4'는 D로

바꾸겠습니다.

 

우선 PowerShell에서 $replace 라는 변수에 파일 내용을 넣습니다.

(사진 2번 째 줄에 있는 echo는 입력해도, 안해도 변수값이 출력되내요..)

 

그리고 이제 저장된 값을 치환하고 파일을 저장합니다.

 

 

치환된 파일의 내용

 

 

아주 간단하게 치환이 끝났습니다.

단지 변수명 뒤에 -creplace 라는 옵션만 주면 손 쉽게 치환이 가능합니다.

좀 더 테스트해본 결과 -creplace 옵션을 많이 사용해도 상관이 없는듯 합니다.

그리고 당연하겠지만 한글<->영어 치환도 가능합니다..(전 한영 전환 때문에 치환하는법을 찾다가 알게 됬내요..)

저 한 줄을 이용해서 PowerShell 스크립트를 만들고 Batch File과 작업스케줄링을 활용해서 주기적으로 치환작업도 가능합니다.

그 내용은 나중에 다시 올리겠습니다.

 

첫 번째 명령줄 내용

$replace=get-content C:\가져올경로\파일명

두 번째 명령줄 내용

$replace -creplace '문자','텍스트' -creplace '1','A' -creplace '4','D' >> C:\새로저장할경로\Replace_text2.txt

----------------------------------- 추가 내용 -----------------------------------------

위 두 번째 명령줄 처럼 리디렉션으로 파일을 생성하면 인코딩이 유니코드로 지정되어 파일이 생성됩니다.

적절하게 파일 인코딩을 선택하고 싶으시다면 리디렉션을 이용하기보단 Powershell에서 제공되는

out-file 명령을 통해 생성하면 인코딩을 선택할 수 있습니다.

$replace -creplace '문자','텍스트' -creplace '1','A' -creplace '4','D' | out-file -encoding ascii C:\저장할경로Replace_text2.txt

 

 

 

@echo off
echo "사용자 계정 생성 중 ..."
net user script_test password! /add
net localgroup Users script_test /del
net localgroup administrators script_test /add
wmic path Win32_userAccount where Name='script_test' set PasswordExpires=false
echo.
echo "생성한 계정으로 스케줄 등록 중.."
schtasks /create /tn script_test /tr "C:\Users\Administrator\Desktop\battest\ziptest.bat" /sc daily /st 14:00 /ru script_test /rp password!
echo.
echo "완료!"

pause

 

 

최근에 반복적으로 각 PC에 계정을 생성하고 스케줄 등록할 일이 있었는데..

그 때는 일일이 손으로 하고 오늘 생각나서 검색하면서 대충 만든거..

설명을 대충 하자면

3번 줄 - net user 명령어를 이용해 사용자 계정을 이름script_test 비밀번호 password! 로 생성

4번 줄 - net localgroup 명령어를 이용해 script_test 계정이 최초 속해있는 Users 그룹에서 삭제

5번 줄 - net localgroup 명령어를 이용해 script_test 계정을 administrators 그룹에 추가

6번 줄 - script_test 계정의 비밀번호 만료 기한을 제거

9번 줄 - schtasks 명령어를 통해 ziptest.bat 파일을 매일 오후 2시에 script_test 계정으로 실행하는 스케줄을 생성

 

간단한데 막상 작업할 때는 급해서 일일이 손으로 다 했었내요..

윈도우 스크립트 공부를 좀 해야할 듯..

 

참고 사이트

schtasks 명령어 관련 : http://blog.naver.com/thebigdragon/50153591730

net user & net localgroup 명령어 관련 : http://blog.naver.com/goacts29/50099308594

기타 : net user /?     net localgroup /?      schtasks /?

 

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

WMIC를 이용한 컴퓨터 정보 가져오기  (0) 2014.04.08
날짜 구하는 스크립트  (2) 2014.02.05

+ Recent posts