zoukankan      html  css  js  c++  java
  • bat批处理笔记

    参考:https://zhidao.baidu.com/question/111737455.html

    好纠结  在notepad上看还可以高亮,在博客园里看都是灰蒙蒙的一片。。

    注意 使用   echo/?命令 cmd查询使用方法

    1.   @echo off    

       @ 不显示后面的命令        echo off 不显示命令信息    echo或者echo on 显示后面的信息

    2.goto 跳跃

    @echo off
    echo 你好
    REM xxx
    goto likeu
    echo 跳过了
    :likeu
    echo next
    pause

    3.set /a   和 set/p     注意使用set时,最好下面空出一行来。不空出一行会运行错误,不知道原因。

    set /a 执行数学计算       set/p提示输入

    @echo off
    echo 加法
    set /p b=输入:
    echo %b%
    set /a a=2*%b%
    echo %b%+%b%=%a%
    pause
    

      

    4.start 开启

    @echo off
    start cmd
    start www.baidu.com
    pause

    5.title 标题

    @echo off
    title =============begin==============
    echo 测试标题
    pause
    

      

    6. copy文件夹直接目录下的文件到另外文件夹下面 并通过goto重复复制(copy不能复制所有文件,只是这个子目录下对应的文件。深层次的文件没有复制)

    @echo off
    set sourpath=E:workIOSLOG
    set destpath=E:workat_study
    :begin
    XCOPY %sourpath% %destpath%
    echo 重新复制
    pause
    goto begin
    

      

    7.call 1.调用另外一个bat 2.和goto不同,执行reUse后返回继续执行下面语句

    @echo off
    set sourpath=E:workat_study	est2.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:studyatStudyat编程.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:workat_study"
    
    set test_txt=E:workat_study1.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-ConfigPCVesionResChrismas20161223"
    
    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)UnityEditorUnity.exe"
    
    set myProjectPath=D:UnityProjectRoll-a-ballTutorial
    
    C:
    CD C:Program Files (x86)UnityEditor
    .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.7Editor .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内的程序内容

    改变自己
  • 相关阅读:
    C 语言指针小结
    NOIP2012 复赛考生须知!
    2012 NOIP 初赛复习指导
    16元的纸币
    记一次社会化的钓鱼攻击
    福州大学ACM代表队获36届ACMICPC全球总决赛第18名
    福州教育相关教育资源介绍
    世界末日:科普很重要啊~~~
    201212信息学奥林匹克竞赛,新生招募
    模拟人脑:这个事儿,闹大了
  • 原文地址:https://www.cnblogs.com/sun-shadow/p/7498172.html
Copyright © 2011-2022 走看看