VMware Workstation 다수 실행 스크립트

■ Power On 스크립트

REM ########################################################
REM #
REM # 현재 디렉토리에서 vmx 파일을 검색하여 vmware를
REM # 실행 시킨다.
REM #
REM ########################################################
@ECHO OFF

REM ########################################################
REM # UTF-8로 코드페이지 변경
REM ########################################################
CHCP 65001

REM ########################################################
REM # vmx 파일을 실행시키는 명령어
REM ########################################################
SET "VMRUN_CMD_HEAD=START /B vmplayer"
SET "VMRUN_CMD_TAIL="
REM SET "VMRUN_CMD_HEAD=START /B vmrun -T ws start"
REM SET "VMRUN_CMD_TAIL=gui"
SET "TIMEOUT_VAL=10"
SET "VMRUN_CMD_ALL=___VM_RUN_ALL.BAT"

IF EXIST %VMRUN_CMD_ALL% DEL /F /Q %VMRUN_CMD_ALL%

REM ########################################################
REM # vmx 각각 실행 배치파일 작성
REM ########################################################
SET COUNT=0
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /F "TOKENS=*" %%F IN ('DIR /S /B "%~DP0\*.vmx"') DO (
    SET "STR1=%%F"
    IF "!STR1:vmxf=!"=="!STR1!" (
        ECHO !VMRUN_CMD_HEAD! "!STR1!" !VMRUN_CMD_TAIL!
        ECHO !VMRUN_CMD_HEAD! "!STR1!" !VMRUN_CMD_TAIL! > ___!COUNT!.BAT
        ECHO CALL ___!COUNT!.bat >> !VMRUN_CMD_ALL!
        ECHO @TIMEOUT /T !TIMEOUT_VAL! >> !VMRUN_CMD_ALL!
        SET /A COUNT+=1
    )
)
ENDLOCAL

REM ########################################################
REM # 다른 배치를 부르는 메인배치 실행
REM ########################################################
CALL %VMRUN_CMD_ALL%

REM ########################################################
REM # 임시 배치파일들 삭제
REM ########################################################
DEL /F /Q ___*.BAT
DEL /F /Q %VMRUN_CMD_ALL%
PAUSE

■ Power Off 스크립트

REM ########################################################
REM #
REM # 현재 디렉토리에서 vmx 파일을 검색하여 vmware를
REM # Power Off 시킨다.
REM #
REM ########################################################
@ECHO OFF

REM ########################################################
REM # UTF-8로 코드페이지 변경
REM ########################################################
CHCP 65001

REM ########################################################
REM # vmx 파일을 실행시키는 명령어
REM ########################################################
SET "VMRUN_CMD_HEAD=START /B vmrun -T ws stop"
SET "VMRUN_CMD_TAIL=soft"
SET "TIMEOUT_VAL=2"
SET "VMRUN_CMD_ALL=___VM_RUN_ALL.BAT"

IF EXIST %VMRUN_CMD_ALL% DEL /F /Q %VMRUN_CMD_ALL%

REM ########################################################
REM # vmx 각각 실행 배치파일 작성
REM ########################################################
SET COUNT=0
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /F "TOKENS=*" %%F IN ('DIR /S /B "%~DP0\*.vmx"') DO (
    SET "STR1=%%F"
    IF "!STR1:vmxf=!"=="!STR1!" (
        ECHO !VMRUN_CMD_HEAD! "!STR1!" !VMRUN_CMD_TAIL!
        ECHO !VMRUN_CMD_HEAD! "!STR1!" !VMRUN_CMD_TAIL! > ___!COUNT!.BAT
        ECHO CALL ___!COUNT!.bat >> !VMRUN_CMD_ALL!
        ECHO @TIMEOUT /T !TIMEOUT_VAL! >> !VMRUN_CMD_ALL!
        SET /A COUNT+=1
    )
)
ENDLOCAL

REM ########################################################
REM # 다른 배치를 부르는 메인배치 실행
REM ########################################################
CALL %VMRUN_CMD_ALL%

REM ########################################################
REM # 임시 배치파일들 삭제
REM ########################################################
DEL /F /Q ___*.BAT
DEL /F /Q %VMRUN_CMD_ALL%
PAUSE
위로 스크롤