1. 程式人生 > >bat指令碼,變數賦值,IF/FOR使用

bat指令碼,變數賦值,IF/FOR使用

要寫一個BAT指令碼,才發現BAT指令碼寫起來有點“蹩腳”。 但是功能還是蠻強大的,細細看他的幫助文件,可以實現很強大的功能。

我的主要目的是判斷一個應用程式是否已經啟動,如果沒有啟動,就啟動它。已經啟動就跳過了。

最麻煩的的地方在於不知道怎麼給bat定義變數以及給這個變數賦值,看了文件和網上的有些實現才發現,要通過For迴圈來繞著來實現。

指令碼如下:

@SET process=notepad.exe

REM 使用tasklist命令來尋找程序,/FI可以指定過濾條件。
@FOR /F %%i IN ('TASKLIST /NH /FI "IMAGENAME eq %process%"') DO @SET var=%%i

REM 這是一種方式,通過比較字串實現
@REM @IF /I %var%==%process% (@ECHO EXIST) ELSE (@ECHO NOT EXIT) REM Compare by process name

REM 看Var是否有定義過,沒有定義過說明沒有找到我們需要的程序,跳轉
@IF DEFINED var (@GOTO CONTINUE) ELSE (@GOTO START_PROCESS)
:START_PROCESS
REM 在這裡寫啟動程序的命令
@ECHO EXIST
:CONTINUE
REM 繼續做其他事情
@ECHO NOT EXIST
@pause


做個記錄,以後有類似的指令碼要寫,不至於無頭緒。

可以檢視cmd的幫助文件得到更多資訊

IF /?


FOR /?


GOTO /?


TASKLIST /?


寫到檔案裡面看比較清楚,呵呵
TASKLIST /?>tasklist_help.txt