bat批處理筆記

參考: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內的程序內容

相關文章
相關標籤/搜索