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内的程序内容

相关文章
相关标签/搜索