강좌 / 팁

윈 도 우 소소한 배치파일 팁 2가지(start 명령, %time%)

2022.05.26 14:49

메리아 조회:2169 추천:10

 

 

최근 배치파일 작성하다 문제가 생긴거 있어서 팁으로 남겨봅니다.

 

 

1. start 명령

cmd창,배치파일에서 쓰는 start명령이 있는데요.

기본 사용법은

start "창제목" "실행파일명"

start /wait "창제목" "실행파일명"

 

보통

start "" "notepad.exe"

이런식으로 많이 씁니다.

보통 "새창"으로 실행할때 좋아서 많이 쓰죠.

 

 

옵션 설명

/wait : 이거 없으면 멀티로 따로 실행하고 배치파일 프로세스 즉시 진행. 있으면 새로 열린 창을 닫을때까지 배치실행이 여기서 멈춤.

"창제목" : 보통 그냥 비워둬도 됨. <- 제 경우 문제가 된 부분이 이거. 후술하겠음.

"실행파일명" : 같은경로나 공통경로에 있는건 당연히 파일명만, 아니면 fullpath로 입력.

   ㄴ exe등 실행파일

   ㄴ txt jpg등 일반파일은 연결된 파일로 실행됨(즉 탐색기 더블클릭이랑 같음)

   ㄴ 폴더경로가 있으면 새 탐색기 열어서 바로 열어줌. 즉 이거 이용하면 자동으로 여러 경로 여는 배치파일 작성 가능.

   ㄴ cmd bat 등 새창으로 cmd창 열어서 따로 실행하는 것도 가능 <- 이것도 문제가 된 부분. 후술함.

/min : 위의 예시에는 없으나, 최소화 실행하는 옵션. 안먹히거나 보안설정에 막히는 경우도 있음. 탐색기를 최소화 상태로 여는데 유리.

 

 

start 명령 쓰다가 제가 문제가 생긴 부분은

start "" "실행.cmd" 이런 방식입니다.

엔간한건 다 "창제목"을 비워도 되는데, cmd bat만큼은 "창제목"에 뭐라도 넣어야합니다.

안넣고 실행하면 

"메모리 리소스가 부족하여 이 명령을 처리할 수 없습니다."

라는 오류를 끝에 뿜어냅니다.(실제 메인 실행에 문제가 되진 않습니다.)

그러므로 배치파일을 start 명령으로 돌릴땐 창 제목을 임의로 넣어주세요. 나머지는 보통 비우고 써도 됩니다.(오히려 비워야만 하는경우가 많음)

 

참고로 새창 안열고 같은 창에서 배치파일 열때는 대개 call 명령을 씁니다.

 

 

 

2. %time% 문제

제가 얼마전에 일부백업 하는 문제로 문의도 하고 해법을 배워가고 제 해법도 올리고 그랬습니다.

그런데 쓰다보니 문제가 되는 부분이 있더군요.

 

예를들어 시각 정보가 필요한데,

배치파일상에서 현재의 yyyy-mm-dd와 hh:mm:ss의 시각정보를

yyyymmddhhmmss 형태로 얻어야합니다.

 

그래서

set "start_yyyymmddhhmmss=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%"

라는 명령을 썼더랬습니다.

그런데 이게 오류가 생기더군요.

 

배치파일에서

%date%와 %time%의 값을 배치파일에서 얻을때

2022-05-26 14:43:11.27

이런 형태로 얻게 됩니다.

 

문제는 14시가 아니라 04시인 경우에는

2022-05-26 14:43:11.27

2022-05-26  4:43:11.27

이런식으로 0 패딩 없이 값이 나옵니다.

즉 yyyymmddhhmmss를 뽑으면

20220526 44311

로 나와서 제대로 사용이 어려워집니다.

 

이걸 해결하는 방법은 여러가지가 있겠으나, 배치파일은 기본적으로 연산같은게 불편하기 때문에

저는 아래와 같이 씁니다.

if "%start_yyyymmddhhmmss:~8,1%" == " " (

  set "start_yyyymmddhhmmss=%start_yyyymmddhhmmss:~0,8%0%start_yyyymmddhhmmss:~9%"

)

 

그냥 간단하게 0 자리가 비어 있으면 0 채우는 구문입니다.

연산으로 하는게 더 분명하겠지만, 저렇게 편법을 좀 써봤습니다.

 

20220526 44311

->

20220526044311

이렇게 바뀝니다.

 

아무튼 %time%은 제로패딩 없이 값이 나오니까 주의 바랍니다. ^^

 

 

 

 

 

번호 제목 글쓴이 조회 추천 등록일
[공지] 강좌 작성간 참고해주세요 gooddew - - -
4510 기 타| 유튜브에서 영상 썸네일 겟수 늘리기 new 오호라7 38 0 06:31
4509 윈 도 우| 프로비저닝(Provisioning) 패키지 생성 - ADK [2] new 무월 73 3 00:40
4508 소프트웨어| purebasic 함수 인수 기본 값 설정으로 생략하기 [2] 입니다 385 9 03-24
4507 소프트웨어| pureBasic 외부 함수 호출 [1] 입니다 405 9 03-25
4506 모 바 일| #Kinemaster강좌, Clip&Audio 자르기 이동 늘리기, Un... 무림거사 410 1 08-02
4505 소프트웨어| pureBasic 포인트 기본 이해 [3] 입니다 414 10 03-25
4504 윈 도 우| [실사] 윈도우8.1 프로 VHD 설치 방법 [5] 무월 431 6 05-08
4503 모 바 일| Kinemaster 강좌 -Clip을 "즐겨찾기"에 등록 &am... 무림거사 434 1 08-11
4502 소프트웨어| purebasic Macro 기본 [3] 입니다 461 10 03-25
4501 모 바 일| Kinemaster강좌 #글자 입력방법, #링 속도 줄이는 방법 무림거사 471 1 08-03
4500 모 바 일| Kinemaster 화살표 Arrow 표시하는 2가지 방법 무림거사 477 1 08-08
4499 소프트웨어| Bcd부팅항목 메뉴 숨기기 [3] 카멜 486 9 03-04
4498 소프트웨어| purebasic 기본적인 변수, 함수 선언 [5] 입니다 487 11 03-24
4497 윈 도 우| [Tip] 윈도우 OOBE 구간에서 설정 창 열기 [5] 무월 488 9 06-08
4496 모 바 일| #Kinemaster 강좌, 기기성능 에 따른 출력해상도, 출력화질... [1] 무림거사 496 1 08-13
4495 윈 도 우| 원격 데스크톱..., 자격증명이 작동하지 않습니다... [1] 사가르마타 500 1 04-12
4494 모 바 일| Mobile PowerDirector강좌 #크로마키 무대 제작방법 특강 [1] 무림거사 530 2 06-24
4493 윈 도 우| vbs_Merge Lines(Drag-n-drop) [12] 레마클로 554 4 03-03
4492 소프트웨어| dup2patcher.dll 디컴파일링-2 [3] sunshine 559 5 07-21
4491 기 타| 커스텀 드라이브 아이콘 적용해 볼까? [3] 내꼬 569 5 03-09
XE1.11.6 Layout1.4.8