기 타 [배치파일]에서 클립보드 읽고 쓰는 방법
2021.07.19 10:26
배치파일에서 클립보드 활용하는 방법입니다.
배치파일도 외부에서 변수등을 받아올일이 있습니다.
매개변수를 받는다던가 set /p등으로 받아올일이 있는데 사실 좀 불편합니다.
클립보드를 활용하면 편한데 배치파일과는 무관하다고 생각하고 있었는데,
배치파일에서도 클립보드를 활용할 수 있는 방법이 있어서 소개하려고 합니다.
1. 클립보드 내보내기
텍스트나 변수 혹은 명령등을 클립보드로 옮기는 방법입니다.
CLIP 이라는 명령어를 쓰면 간단합니다.
clip을 리다이렉트(|)를 써서 사용하면 됩니다.
(코딩폰트가 아니라서 구분이 안될수 있는데 그냥 일자가 아니고 키보드\하고 쉬프트를 눌러서 나오는 작대기 2개짜리 기호입니다)
1) 텍스트를 클립보드로
echo.텍스트|clip
|
2) 변수를 클립보드로
echo.%text%|clip
|
3) 명령어의 결과를 클립보드로
dir/w | clip
|
출력내용 | clip 형태로 다양한 응용이 가능합니다.
2. 클립보드 가져오기
이번엔 클립보드를 읽어오는 방법인데 clip명령어로는 불가능해서 파워쉘을 활용하는 방법으로 사용합니다.
1) 클립보드 단순출력
powershell Get-Clipboard
|
단순출력은 파워쉘의 Get-Clipboard를 활용하여 powershell Get-Clipboard 형태로 쓰면 파워쉘명령어를 바로 가져올 수 있습니다.
2) 클립보드 변수화
setlocal EnableDelayedExpansion
for /f "tokens=1 delims=" %%A in ('powershell Get-Clipboard') do ( set Clipboard=%%A )
echo.!Clipboard!
|
클립보드 변수화는 살짝 까다로워지는데 3줄이 필요합니다.
리다이렉트를 써서 변수지정을 할수 있는 방법이 마땅치 않아서 for를 써서 변수지정(변수명:Clipboard)을 하는 방법을 사용합니다.
그런데 배치파일에서 for안에서의 변수는 지역변수이기 때문에 전역변수로 바꿔서 사용합니다.
대게 코드 앞부분에 setlocal EnableDelayedExpansion 라고 선언을 해주고 변수명을 %Clipboard%가 아닌 !Clipboard!로 사용해줍니다
2번줄이 실제 변수지정하는 방법이고 1,3번줄은 지역변수 피하기 위해 필요한 내용입니다.
참고로 이경우 단점은 클립보드가 멀타리인일경우 마지막줄만 가져오게 됩니다.
for안에서 멀티라인을 재조립하는 방법도 시도해봤는데 비슷하게는 되지만 똑같이 재조립이 안되고 코드가 길어지는 단점이 있고,
여러줄의 클립보드를 변수화시킬일이 많지는 않을것 같아서 제외했습니다.
배치파일에서 클립보드를 활용하시려는 분들께 도움이 되었으면 합니다.
댓글 [8]
-
슈머슈마 2021.07.19 10:35
-
하늘개구 2021.07.19 10:54
좋은 강좌 고맙습니다.
-
두리안 2021.07.19 17:52
좋네요. 감사합니다 ^^
-
지후빠 2021.07.21 18:35
수고하셨습니다.^^ 검색해보니 아래 링크의 끝자락에 mshta를 이용하는 방법도 있네요. ^^
- mshta + vbscript로 해보려니 잘 안되어 검색해보니 javasript 조합은 있어서 올려봅니다.
- https://stackoverflow.com/questions/6832203/access-clipboard-in-windows-batch-file
for /f "usebackq tokens=* delims=" %i in (`mshta "javascript:Code(close(new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(clipboardData.getData('Text'))));"`) do @echo %i
-
슈머슈마 2021.08.10 21:00
혹시 클립보드에서 호출할때 내가 호출한값이 불러와지나
아니면 클립보드에 여러가지것들이 다 같이 들어와지나
아니면 여러가지중에서 내가 지정 호출을 할수있나
궁금합니다. -
네오이즘 2021.08.11 22:30
간단하게 텍스트를 ctl+c, ctr+v로 복사 붙여넣기 한 값이 입출력된다고 보시면 됩니다.
여러가지중에서 지정호출을 한다던가하는건 당연히 불가능합니다.
-
사라앨리스 2021.08.12 02:26
배치파일잘아는거같아서 질문한개만해도돼나요?
배치파일로프로그램설치 할때 /s /q 이거넣으면 설치됄때 클릭창안뜨는데 근데 안돼는것도있어서그런데 혹시다른명령어알시나요?
-
네오이즘 2021.08.12 10:54
매게변수는 각 명령어마다 다 다르고 프로그램마다 다 달라서 /s /q가 먹는 경우가 있고 그렇지 않은 경우가 있습니다.
따로따로 개별적으로 파악해야 합니다
대게 /? 나 /h -h 등을 넣으면 자세한 설명이 나옵니다
번호 | 제목 | 글쓴이 | 조회 | 추천 | 등록일 |
---|---|---|---|---|---|
[공지] | 강좌 작성간 참고해주세요 | gooddew | - | - | - |
4478 | 윈 도 우| WindowsXPE147-1빌더/나만의 PE를 만들자 시즌2 ?? 1탄 (... [46] | 지연서연아 | 1326 | 57 | 04-16 |
4477 | 서버 / IT| 하드 디스크 사용시간 초기화 하기 [6] | gooddew | 1335 | 8 | 04-15 |
4476 | 소프트웨어| 응답파일(unattend.xml) 교체 및 수정 - ChangeUnattend [13] | 무월 | 991 | 37 | 04-13 |
4475 | 소프트웨어| AOMEI Backupper 백업실패 및 글씨 안보임 문제해결법 [3] | 『ⓖⓤⓝ』 | 647 | 11 | 04-12 |
4474 | 윈 도 우| 윈도우 계정/자동로그인 버그 해결 방법 | 사가르마타 | 655 | 0 | 04-12 |
4473 | 윈 도 우| 원격 데스크톱..., 자격증명이 작동하지 않습니다... [1] | 사가르마타 | 247 | 1 | 04-12 |
4472 | 윈 도 우| SSD 에서 파일 삭제를 주의해야 되는 이유 [3] | gooddew | 2008 | 12 | 04-10 |
4471 | 윈 도 우| 특정 폴더목록 자동열기 배치파일 [2] | 메리아 | 628 | 13 | 04-09 |
4470 | 윈 도 우| 하드 디스크 아이콘 바꾸기 [11] | 타천사둘리 | 1239 | 8 | 04-08 |
4469 | 소프트웨어| pureBasic 자동완성을 위한 프로젝트 만들기 [6] | 입니다 | 981 | 14 | 03-28 |
4468 | 윈 도 우| [uupdump] 윈도우 업데이트 및 드라이버(IRST&NVMe) 통... [17] | 무월 | 2111 | 34 | 03-27 |
4467 | 소프트웨어| WimLib Api 백업.복원 미완성. 샘플 7가지. [10] | 입니다 | 886 | 12 | 03-27 |
4466 | 소프트웨어| SDK(Software development kit) 에 대한 이해 [5] | 입니다 | 555 | 7 | 03-27 |
4465 | 소프트웨어| pureBasic 구조체, Union 구조체 [4] | 입니다 | 589 | 9 | 03-25 |
4464 | 소프트웨어| pureBasic 외부 함수 호출 [1] | 입니다 | 342 | 9 | 03-25 |
4463 | 소프트웨어| pureBasic 포인트 기본 이해 [3] | 입니다 | 354 | 10 | 03-25 |
4462 | 소프트웨어| purebasic Macro 기본 [3] | 입니다 | 401 | 9 | 03-25 |
4461 | 소프트웨어| purebasic 함수 인수 기본 값 설정으로 생략하기 [2] | 입니다 | 346 | 9 | 03-24 |
4460 | 소프트웨어| purebasic 기본적인 변수, 함수 선언 [5] | 입니다 | 438 | 11 | 03-24 |
4459 | 소프트웨어| purebasic 폼 만들기 기본 [3] | 입니다 | 629 | 13 | 03-24 |
고급 기능이네요