bat指令碼,變數賦值,IF/FOR使用
阿新 • • 發佈:2018-12-26
要寫一個BAT指令碼,才發現BAT指令碼寫起來有點“蹩腳”。 但是功能還是蠻強大的,細細看他的幫助文件,可以實現很強大的功能。
我的主要目的是判斷一個應用程式是否已經啟動,如果沒有啟動,就啟動它。已經啟動就跳過了。
最麻煩的的地方在於不知道怎麼給bat定義變數以及給這個變數賦值,看了文件和網上的有些實現才發現,要通過For迴圈來繞著來實現。
指令碼如下:
做個記錄,以後有類似的指令碼要寫,不至於無頭緒。
可以檢視cmd的幫助文件得到更多資訊
寫到檔案裡面看比較清楚,呵呵
我的主要目的是判斷一個應用程式是否已經啟動,如果沒有啟動,就啟動它。已經啟動就跳過了。
最麻煩的的地方在於不知道怎麼給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