질문

batch 파일 기능질문 내공100

프로필이미지비공개
질문25건
질문마감률94.7%
질문채택률94.7%
2018.01.11. 09:47
조회수53
배치파일 질문드려요
그냥 메모장으로 작성하는 .bat 파일로

 프로그램이 현재 실행중인지 확인하는방법



배치파일을 만들어서 프로그램이 실행중인 경우는

그냥 놔두고,

실행중이 아닐때는 프로그램을 실행시켜주는

감시용 배치파일을 필요로 하는 경우가 많습니다.

물론, 이러한 배치파일을 TaskManager 등에 넣어서 주기적으로 감시하기도 하지요.


이번에는, 간단하게 notepad 를 가지고 프로그램을 만들어볼껀데요.

이미 실행중이면, 그냥 배치를 종료시키고

실행중이지 않으면, 배치파일에서 노트패드를 실행시켜주는 기능을 구현합니다.

전체 소스는 아래와 같습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@ECHO OFF
CD C:\tmp
TASKLIST | FIND "notepad.exe" > NUL
IF NOT ERRORLEVEL 1  (
    ECHO 기동중입니다.
    GOTO PGOK
) ELSE (
    ECHO 기동되어있지 않습니다.
    GOTO PGNG
)
 
:PGOK
    ECHO 기동되어있으므로 그냥종료
    GOTO END
:PGNG
    ECHO 기동안되어있으므로 기동합니다. %DATE% %TIME% >> process_test.txt
    START %SystemRoot%\system32\notepad.exe
    GOTO END
:END
    ECHO
EXIT
cs




네트워크 (인트라넷) 등에 파일을 전송하는 프로그램을 만들어서 스케쥴러로 관리하고자 하는 목적으로 작성하였습니다.

 

 

 

 

1. TaskManager 에 등록해서 일정시간을 주기로 정기적으로 구동하는 프로그램을 작성 (가칭 A)

2. 네트워크에 파일을 전송하는 프로그램을 작성 (가칭 B, NetWork / FTP)

 

오늘은 2의 상세버젼 (네트워크 파일복사 / 폴더작성) 을 위한 프로그램에 대해서 설명합니다.

 

파일전송 방식은 여러방법이 있습니다만, 여기서는 네트워크 전송에 대해서 서술합니다.

다음번 포스팅에서는 FTP 전송에 대해서 서술하겠습니다.

 

A. 폴더존재여부를 확인해서 존재하지않는경우 폴더를 작성한다. (권한필요)

※folderPath = 확인할 폴더의 FullPath

      If Not System.IO.Directory.Exists(folderPath) Then
           System.IO.Directory.CreateDirectory(folderPath)
      End If

 

B. System.IO.File.Copy 를 이용해서 대상파일을 복사한다. 

      System.IO.File.Copy(복사할대상파일, 복사하고싶은곳, True)

 

위에서 세번째 파라메터로 True 를 설정하면, 복사하고싶은곳에 해당 파일이 존재할경우 덮어쓰기를 합니다.

주의) 복사하고싶은곳 은 파일명까지 FullPath 를 입력하여야 합니다.

 

간략하게 네트워크상 파일을 복사하는 방법에 대해서 알아보았습니다.

여기서 참고로 복사할대상파일의 파일이름만 가져오는 방법은 IO.Path.GetFileName 메소드를 이용하는것 입니다.

      IO.Path.GetFileName(복사할대상파일)

 

위와같이 설정하면, FullPath 에서 파일이름만 취득해서 반환해줍니다.

+ Recent posts