參考:https://zhidao.baidu.com/question/111737455.htmlhtml
好糾結 在notepad上看還能夠高亮,在博客園裏看都是灰濛濛的一片。。編程
注意 使用 echo/?命令 cmd查詢使用方法svn
1. @echo off 函數
@ 不顯示後面的命令 echo off 不顯示命令信息 echo或者echo on 顯示後面的信息測試
2.goto 跳躍ui
@echo off echo 你好 REM xxx goto likeu echo 跳過了 :likeu echo next pause
3.set /a 和 set/p 注意使用set時,最好下面空出一行來。不空出一行會運行錯誤,不知道緣由。spa
set /a 執行數學計算 set/p提示輸入.net
@echo off echo 加法 set /p b=輸入: echo %b% set /a a=2*%b% echo %b%+%b%=%a% pause
4.start 開啓3d
@echo off start cmd start www.baidu.com pause
5.title 標題htm
@echo off title =============begin============== echo 測試標題 pause
6. copy文件夾直接目錄下的文件到另外文件夾下面 並經過goto重複複製(copy不能複製全部文件,只是這個子目錄下對應的文件。深層次的文件沒有複製)
@echo off set sourpath=E:\work\IOSLOG set destpath=E:\work\bat_study :begin XCOPY %sourpath% %destpath% echo 從新複製 pause goto begin
7.call 1.調用另一個bat 2.和goto不一樣,執行reUse後返回繼續執行下面語句
@echo off set sourpath=E:\work\bat_study\test2.bat echo 本bat call %sourpath% call :reUse echo 1 :reUse echo 2 pause
8.choice 進行條件選擇 (能夠使用 set賦值 if equ 進行功能替換)
@echo off choice /c:123 /m:"選擇123" if %errorlevel%==1 goto one if %errorlevel%==2 goto two if %errorlevel%==3 goto three :one echo 1 pause :two echo 2 pause :three echo 3 pause pause
9.if 條件判斷
其中 errorlevel參考:http://www.jb51.net/article/7525.htm
@echo off REM 參考:http://www.xue51.com/tuwen/4454.html REM --BEGIN--判斷輸入的數據和3是否相同 set /p test_1="輸入數據" if %test_1% equ 3 ( echo test_1 等於3 ) else ( echo test_1 不等於3 ) REM --END REM --BEGIN--判斷是否有這個文件 set test_2="D:\study\batStudy\bat編程.doc" if exist %test_2% ( echo 有這個文件 ) else ( echo 沒這個文件 ) REM --END REM --BEGIN--判斷變量是否被賦值 set test_3=3 if defined test_3 ( echo 被賦值了 爲%test_3%) else ( echo 沒有被賦值) REM --END REM --BEGIN--和errorlevel的結合使用(測試上一個命令的執行結果,返回值必須從大到小判斷) REM errorlevel 爲環境變量命令執行的結果 默認爲0(成功) ping www.baidu.com if errorlevel 1 echo ping百度失敗 if errorlevel 0 echo ping百度成功成功 REM --END pause
10.for的使用
http://www.cnblogs.com/DswCnblog/p/5435300.html
@echo off set test_path="E:\work\bat_study" set test_txt=E:\work\bat_study\1.txt REM --BEGIN--for /f 進行文本處理-- REM 按行讀取文本的內容: &pause能夠每行中斷輸出 for /f %%i in ( %test_txt% ) do ( echo %%i&pause) REM 截取每行字符串,只顯示字符串前面的內容 delims= 使用tokens定點提取 echo 截取字符串: for /f "delims=,." %%i in ( %test_txt% ) do ( echo %%i ) REM 跳過某些行 skip echo 跳過第一行: for /f "skip=1" %%i in ( %test_txt% ) do ( echo %%i ) REM 忽略以指定字符開頭的行 "eol=" echo 忽略以,開頭的行 for /f "eol=," %%i in ( %test_txt% ) do ( echo %%i ) REM --END-- pause
11.時間: 注意set賦值時左右不能有空格 會賦值失敗
@echo off echo %data% echo %date:~0,4% echo %date:~5,2% echo %date:~8,2% echo %time% echo %time:~0,2% echo %time:~3,2% echo %time:~6,2% set THISDATETIME=%date:~0,4%%date:~5,2%%date:~8,2%%TIME:~0,2%%TIME:~3,2%%TIME:~6,2% echo %THISDATETIME% pause
12. svn的使用
參考:http://blog.csdn.net/magictong/article/details/5206546
svn help [command]便可,譬如想看看checkout的用法:svn help checkout
@echo off REM 測試svn update 注意不能夠中文路徑 set svnPath="D:\Net-Config\PCVesionRes\Chrismas20161223" D: cd %svnPath% svn update pause
13.調用unity項目內一個static函數
http://blog.csdn.net/linxinfa/article/details/70914939
http://blog.csdn.net/lzdidiv/article/details/53606712
https://docs.unity3d.com/Manual/CommandLineArguments.html
@echo off set unitypath="C:\Program Files (x86)\Unity\Editor\Unity.exe" set myProjectPath=D:\UnityProject\Roll-a-ballTutorial C: CD C:\Program Files (x86)\Unity\Editor .\Unity.exe -projectPath %myProjectPath% -quit -batchmode -executeMethod PickupRotate.TestBatFun echo 結束 pause
啓動參數形式進行 傳參:其中調用System.Environment.GetCommandLineArgs(); 進行解析參數。
@echo off set myProjPath=D:\DevVersion set MethodName=CharacterContainer.TestBat
D: cd D:\Program Files (x86)\Unity4.7\Editor .\Unity.exe -quit -batchmode -projectPath %myProjPath% -executeMethod %MethodName% -myName LZ echo over.............. pause
%UNITY_PATH% -batchmode -logFile buildlog.txt -projectPath %PROJECTRES_PATH_RES% -executeMethod ProjectBuild.BuildAndroidRes -quit
2018年5月29日 20:01:54記錄:
若是類添加了命名空間,
-executeMethod 後類名稱前須要添加好具體的命名空間,不然bat batchmode會把unity項目都搜索一遍。。。而後。。打開unity項目還要從新導入資源了。。
dir的使用
自測:實現如下功能:
1.複製一個文件夾的全部文件到另一個文件夾中去
2.調用項目中某個函數接口執行
3.調用unity的打包命令
4.更新指定路徑下的svn
5.讀取一個ini文件 來進行開機自動啓動ini內的程序內容