cmd基础命令

cmd基础命令

常用规则

  • @echo off:关闭所有回显包括本身,不然每一行都会显示在cmd包括注释,去掉可用作调查;@表示后面的命令不显示。
    -在这里插入图片描述

  • echo.:换行。

  • exit /b 1

    • exit:退出当前cmd窗口实例。
    • exit 0:退出当前cmd窗口实例,并将过程退出代码设置为0(0表示成功,非0表示失败)。
    • exit /B 1:退出当前bat脚本,并将ERRORLEVEL系统变量设置为1。
  • pause:不加执行完会直接推出cmd窗口,加了最后会提醒出入回车关闭窗口。

  • 参数:

    • %~dp0%~d0取驱动盘名,%~p0取路径名,不含驱动盘名;扩充到当前目录。
    • %CD%:扩展到当前目录。
    • %~1:代表传给脚本的第一个参数,当参数以引号开头时,%~1会自动将引号删除。
  • %errorlevel%:DOS程序在运行结束后会返回一个数字值用来表示程序运行的结果(或者状态),0表示成功,>0表示失败。

SET变量相关

  • set var=string:给变量赋值字符串,“string”的话显示值也会带引号。

  • set var:显示值。

  • set var=:删除该变量。

  • set /p var=:var值为输入字符串。

  • %VAR:str1=str2%:字符替换,把把变量名中的str1字符串替换成str2,没有就不换;"%VAR:R=%",去掉R。

  • %VAR:~0,24%:字符串截取,把变量从第1个字符开始(包括)截取24个字符,0第一个char,-1最后一个,-2倒数第二。

  • 使用环境变量:
    -在这里插入图片描述

    set BUILD_SUPPORT=C:\Users\Z0178023\myPrj\FRGen21_Tools
    %FRGen21_BuildSupport%
    

    在这里插入图片描述

    我们没有定义,但是环境变量有与上面会先消息一致。

  • setlocal:局部变量。setlocal到endlocal之间给变量赋值,仅在这区间有效;或者没有endlocal;一般set只会在下一条语句生效,加上setlocal。

if相关语句

  • 基本规则:if和执行的命令,ifelse,要在同一行,不然是错的。例如:
    if exist filename(
        echo yes!
    )ELSE(
        echo NO1
        echo NO2
    )
    
  • If not existexist,一般是不存在那个目录或文件。
  • equ/==:等于,neq:不等于,lss:小于,leq:小于等于,gtr:大于,geq:大于等于。
  • 注意:空格,空格不加会报语法错误。
    if "%ALGORITHMRAW_NAME_NEW%"=="" (
    

for语句必看

  • for %%i in (*.*) do echo %%i:无参数。in在某些文件中,for %%i对于其中的某个文件,do做下面处理。
  • for %%i in (A,B,C) do echo %%i:无参数,处理字符串序列。
  • /l是重要的参数之一,用来指定数值变量的步进循环模式。
    • for /l %%i in (5,3,16) do echo %%i:从5开始到16为止每次递增3作为变量%%i的值,5 8 11 14,do做下面处理。
  • /f对指定范围内的文字进行循环,可以是一个文件里的文字,可以是一个字符串,也可以是一条命令的输出结果:
    • 将命令返回结果用作处理,用单引号:for %I in ('command') do command
    • 兼容usebackq
      • 路劲兼容,用双引号:for %I in ("path") do command
      • 命令兼容,在命令批处理中(i),如果command内包含单引号,所以无法识别,用后引号:
        for %I in (`command`) do command
        
        • for /f "usebackq delims==" %%i in (“@dir /b %ALGORITHM%\ZZZ_Build_Products*APU*_%RADAR_TYPE%.raw”) do @set ALGORITHMRAW_NAME=%%i
        • 这里不加""也可以,直接后引号。
    • "delims=":分隔符,一句话总结:忽略分隔符,切分字符串。默认分隔符空格,delims==分隔符为=,所以delims=usebackq设置分隔符空格。

重定向和管道

  • >:覆盖,将命令的输出重定向到文件中,但是会清除原来文件中内容。
  • >>:追加,将命令的输出重定向文件中,不会清除原来文件中的内容,会将内容追加到文件尾部。
  • <:将某个文件中的内容重定向为输入。例如:set /p myvar=<sss.txt,从sss.txt中读入一行放入myvar中。
  • NUL:空设备,类似于linux的/dev/null

目录命令

  • cd:进入到目录。
  • md:创建文件夹。
  • rd:删除文件夹。
  • dir:显示目录中的文件和子目录列表,子目录里的文件不显示,包括时间戳,多少个文件,大小。
    • /b:仅显示该目录下的文件和子目录名,不显示上面的大小什么的。
  • xcopy:复制文件和目录树。
    • 无参数:xcopy .\aa .\dd,只拷贝aa目录下的文件,不拷贝文件夹。发现dd只有1.txt文件,不同于linux下的cp。
    • /sxcopy /s .\aa .\dd,递归,把该目录下(aa)的文件及子目录中文件一起拷贝,除了空文件夹。拷贝aa的1.txt和bb\2.txt(包括bb文件夹)到dd。
    • /e:同/s,但是包括空文件夹。
    • /q:同下。
    • /Y:进行拷贝时不提示是否确认Y or N。
  • 文件命令:
    • del:删除一个或多个文件。

      • 参数:
        • /f:强制删除只读文件,不加不能删除系统文件。
        • /s:递归删除,删除指定目录及其子目录下的文件;del /s .\aa\aaa.txt,aa下的子目录中的aaa.txt也会删除。
        • /q:不询问,比如说删除文件夹会询问YES/NO,加了这个参数就不会问,直接删除。
      • del .\aa\aaa.txt:一定要加.,或者直接写绝对路径;不然就识别不到file。
    • type:显示文本文件的内容。

      • type test.txt:把txt文件的内容显示到cmd,一定要加后缀。
      • type nul>test:在当前目录创建一个叫test的空文件/
      • type a.txt b.txt>c.txt:合并文件
    • copy:将一份或多份文件复制到另一个位置,可以实现改名。

      • copy C:\test*.* D:\back (复制C盘test文件夹的所有文件(不包括文件夹及子文件夹里的东西)到D盘的back文件夹)
    • attrib:文件属性设置

      • attrib -r . /S /D 【-清除 +设置 ; 清除只读属性-哪些文件-处理当前文件夹和所有子文件夹中的匹配文件-同时处理文件夹】
    • ren:重命名文件,ren 路径/文件名(相对或绝对) 文件名,不能指定目标文件的路径

  • objcopy.exe
    • 相当于linux的objcopy命令,用于格式转化和裁剪文件;可以利用objcopy选项来填充生成的bin文件。
    • 参数
      • –pad-to=address: 填充输出文件到虚拟地址address
      • –gap-fill = 0xff是objcopy的参数,表示在拷贝过程中,用0xff来填充段与段之间的空隙
  • srec_cat :格式转化
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值