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

2021-08-30 05:18:13 字數 1075 閱讀 3624

要寫乙個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

bat批處理指令碼 如何允許變數迴圈賦值

在cmd控制台,執行set 可以得到解釋 新增了延遲環境變數擴充的支援。該支援總是按預設值被停用,但也可以通過 cmd.exe 的 v 命令列開關而被啟用 停用。請參閱 cmd set var before if var before set var after if var after echo ...

shell 指令碼變數賦值

簡單的變數賦值a 879 echo the value of a is a.用let賦值let a 16 5 echo the value of a is now a.read命令是系統內建命令 語法格式 read 變數1 變數2 用 read 命令 這也是一種賦值 echo n enter a r...

bat檔案設定環境變數指令碼

獲取管理員許可權 echo off 1 mshta vbscript createobject shellexecute cmd.exe c s0 runas 1 window.close exit cd d dp0 echo off wmic environment where name osg ...