批處理使用場景有不少,好比設置當前批處理命令中的JAVA環境變量、Tomcat在Windows下面的啓動程序、
清理文件等。
rem
該命令用於註釋。解釋器將不會執行以rem命令開始的行。
pause
pause命令用於暫停正在執行的批處理文件,並提示用戶按個鍵,而後程序會繼續運行。
echo
該命令用於在DOC控制檯上顯示一段文本。例如,下面的命令將在控制檯上輸出「Hello World」,而後暫停程序。之因此暫停程序是爲了可以使控制檯將輸出的文本顯示出來。
echo Hello World
pause
若是想要顯示環境變量的值,須要在環境變量的先後添加「%」。例如,下面的命令將輸出變量myVar的值:
echo %myVar%
若是想要輸出操做系統的名字,可使用以下的命令:
echo %OS%
echo off
使用「echo off」能夠防止將批處理文件中的具體命令輸出,而只會輸出執行結果。可是,「echo off」命令自己仍是會顯示出來。若是想要將「echo off」也隱藏起來,須要使用"
@echo off"命令。
該命令與「echo off」命令相似,但它會連「echo off」命令也隱藏起來。
set
set命令用來設置用戶定義或命名的環境變量。在批處理文件中設置的環境變量時臨時存儲在內存中的,在批處理文件執行完成後就會銷燬。
例如,下面的set命令建立了一個名爲「THE_AUTHOR」的環境變量,將其值設置爲「Fanzexi」,並輸出到控制檯上:
set THE_AUTHOR=Fanzexi
echo %THE_AUTHOR%
pause
label
使用冒號設置一個標籤。而後能夠將標籤傳遞給goto命令,這樣程序就會跳轉到標籤指定的位置。下面的語句定義了一個名爲「end」的標籤:
:end
標籤一邊是與goto結合使用,更多例子參考goto命令的介紹。
goto
goto命令強制批處理文件跳轉到指定標籤所在的位置繼續執行。示例以下:
echo Start
goto end
echo 我沒有被執行哦。不信你執行一下。
:end
echo End
pause
if
if用來執行條件測試。有如下3種用法:
(1)、測試變量的值
(2)、測試文件是否存在
(3)、測試錯誤值
使用下面的命令格式來測試一個變量的值:
if variable==value nextCommand
例如,下面的if語句將會測試變量myVar的值是否是3.若是是,則它在控制檯上輸出「變量值是3」:
set myVar=3
if %myVar%==3 echo 變量值是3
pause
可使用下面的命令格式來測試文件是否存在:
if exist c:\temp\myFile.txt goto start
當c:\temp目錄下存在myFile.txt文件時,程序就會跳轉到start標籤所在位置繼續執行。
也可使用not關鍵字來對一條語句取反。
not
not關鍵字用來對一條語句取反。修改一下上面例子:
set myVar=3
if not %myVar%==3 echo 變量值不是3
pause
if not exist c:\temp\myFile.txt goto end
exist
當測試文件是否存在時,會使用到if語句和exist命令,示例程序參考if命令的例子。
接受參數
能夠給批處理文件傳遞參數,並使用%1引用第1個參數,%2引用第2個參數,以此類推。
例如,下面的命令將在控制檯輸出第1個參數的值:
echo %1
若是批處理文件的名字是test.bat,並使用「test Hello」命令來調用它,那麼將會在控制檯中輸出「Hello」。
下面的批處理文件會對第一個參數的值進行檢查。若是第1個參數是start,它就會輸出「Starting application」;若是第1個參數是「stop」,就輸出「Stopping application」;不然,輸出「無效的參數「:
echo off
if %1==start goto start
if %1==stop goto stop
goto invalid
:start
echo Starting application
goto end
:stop
echo Stopping application
goto end
:invalid
echo 無效參數
:end
pause
若要檢查運行批處理文件時,是否附帶參數,能夠將」%1「與空字符串進行比較。例如,對於下面的批處理文件,若是運行時沒有使用參數,就會在控制檯上輸出」沒有參數「:
if "%1"=="" echo 沒有參數
或
if ""%1""=="""" echo 沒有參數
shift
shift命令用來將參數向後移動一位,即將%2的值複製給%2,以此類推。例如,下面的代碼使用一條shift命令:
echo off
shift
echo %1
echo %2
若是在運行批處理文件時,附加了3個參數a、b、c,那麼上面的命令會有以下輸出:
b
c
移動後,要使用%0來引用第1個參數,而如今最後一個參數則失效了。
call
call命令用來調用另外一條命令。
setLocal
在批處理文件中使用setLocal對環境變量的修改只在當前批處理腳本中有效。當遇到endLocal命令後,在批處理文件的末尾修改的環境變量的值會恢復成原來的值。
start
打開一個新的Windows控制檯,並能夠爲這個新的控制檯指定一個名字,例如:
start "Title"
此外,在」Title「後面,還有傳入一條將要在新的控制檯中執行的命令,以下所示:
start 」Title「 commandName
系統運行久了好多垃圾文件。有些文件是一些電腦管理軟件不會清理的。只能本身手工刪。最近研究了Tomcat的啓動文件學習了一下windows下面的bat命令文件。找了一下如下代碼進行文件清理頗有效果。分享給你們。 windows
如下代碼複製到文本並保存,將文件後綴改成.bat直接運行便可。
@echo off
pause
echo 正在清理系統垃圾文件,請稍等......
del /f /s /q %systemdrive%\*.tmp
del /f /s /q %systemdrive%\*._mp
del /f /s /q %systemdrive%\*.log
del /f /s /q %systemdrive%\*.gid
del /f /s /q %systemdrive%\*.chk
del /f /s /q %systemdrive%\*.old
del /f /s /q %systemdrive%\recycled\*.*
del /f /s /q %windir%\*.bak
del /f /s /q %windir%\prefetch\*.*
rd /s /q %windir%\temp & md %windir%\temp
del /f /q %userprofile%\cookies\*.*
del /f /q %userprofile%\recent\*.*
del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*"
del /f /s /q "%userprofile%\Local Settings\Temp\*.*"
del /f /s /q "%userprofile%\recent\*.*"
echo 清理系統垃圾完成!
echo. & pause