精华内容
下载资源
问答
  • bat脚本积累(三)—— bat的注释

    千次阅读 2020-02-28 15:51:07
    单行注释%% 看例子: 结果: 可以看到,注释内容(无论是与命令同行还是单成一行)都不可见 但是注意,%%不能用于多行注释: 运行: 单行注释REM 例子: ...

    单行注释%%

    看例子:
    在这里插入图片描述
    结果:
    在这里插入图片描述
    可以看到,注释内容(无论是与命令同行还是单成一行)都不可见
    但是注意,%%不能用于多行注释:
    在这里插入图片描述
    运行:
    在这里插入图片描述

    单行注释REM

    例子:
    在这里插入图片描述
    结果:
    在这里插入图片描述
    这也能看到REM指令的特点:
    1.“REM 注释”本身是REM指令的使用方式,受“bat指令默认回显”的约束,本身会回显在屏幕上,但是只是将注释作为文本处理,原样输出,可以想见,如果使用@或echo off将REM隐身,则其注释效果和%%就一样了 —— 源代码中注释的效果:
    在这里插入图片描述
    结果:
    在这里插入图片描述
    一个不得不问的问题是:可以行末注释吗:
    在这里插入图片描述
    结果:
    在这里插入图片描述
    结论很明显:不行。只能单成一行注释行,不能像%%进行行末注释。

    单行注释::

    先看例子:
    在这里插入图片描述
    结果:
    在这里插入图片描述
    同REM一样,::能否进行行末注释呢?

    结果:
    在这里插入图片描述
    结论:不行,::只能单独注释行,不能进行行末注释。

    其实不得不提::命令的本质 —— :后面加任意非字母数字符号均可作为注释标识符号,如:
    在这里插入图片描述
    结果:
    在这里插入图片描述
    答疑时间:其实 : 本身就可以作为定义标签所用,如在goto语句中:

    goto label
    @echo 这里其实会被直接跳过
    :label
    @echo 这里将会被执行
    

    定义标签时,使用 : ,而标签本身只是作为一个标识符,并不是命令,所以不管echo开关状态如何都不会回显,而 :: 和上面演示的 :? 等等刚好利用定义标签这个功能来实现了注释(个人理解,如有错误欢迎指正)。
    那么这也提示我们:

    1. :: 进行注释的本质是 : 能进行注释
    2. 原则上可以使用 : 进行任何内容的注释,但是为了避免和已有标签冲突,不建议直接使用 : ,相应地,也不建议:后面加数字或字母,因为这和标签的命名规则冲突,也容易引起混淆,建议直接使用 ::,因为这和标签命名不冲突,而且最为常用,程序易读。

    多行注释 goto

    上面介绍的都是单行注释,当然我们能对多行同时注释,但是毕竟太麻烦,有什么方法可以提供多行注释呢,其实bat本身并没有多行注释命令,但是就像我们可以利用 : 定义标签来进行注释一样,我们可以利用一些语法逻辑来实现多行注释。
    整体的思路就是:将多行注释写在永远也不会执行到的地方。
    这是因为利用了bat的特点:单步解释性执行,不会进行编辑,检错。
    看下面例子:
    在这里插入图片描述
    结果:
    在这里插入图片描述
    这段代码很好理解,执行到goto label时将直接跳转到:label处,中间的部分不予理会(注意,命令中也不会显示)。自然形成了段注释的“效果”。
    另外,如果不想看到goto label(毕竟只是为了实现多行注释的目的的,本身没有其他意义),可以用@将其隐身掉。

    多行注释if

    看例子:
    在这里插入图片描述
    结果:
    在这里插入图片描述
    因为1==0永远不会成立,所以括号内的语句永远不会执行,自然起到了注释得效果。
    另外,这里强烈推荐以上的if写法,注意点:

    if+空格+条件+空格+左括号
    多行注释
    右括号
    

    但美中不足的是,命令中会显示该命令和注释,这一点可以和goto一样,使用@将if句注释掉:
    在这里插入图片描述
    结果:
    在这里插入图片描述

    总结

    单行注释
    • %% 本身不是指令,故是不回显的,可以单独成行注释,也可以行末注释
    • REM 本身是指令,会回显的,只能单独成行注释
    • :: 来源于:定义标签,只能单独成行注释
    多行注释
    • goto label
    • if 1==0
      二者都可以通过@将本身隐身。
    @echo 提示信息

    这个可以用于在屏幕打印信息,因为有时需要向屏幕输出一些说明信息,而

    • REM 提示信息 会回显REM,不美观
    • @echo off + echo 提示信息 + echo on 又太繁琐
    展开全文
  • Bat注释符号

    2014-07-29 14:23:00
    rem : 注释, 表示不执行rem 后面的脚本,不能出现重定向符号和管道符号 ::, 双冒号 注释内容(第一个冒号后也可以跟任何一个非字母数字的字符)echo 注释内容(不能出现重定向符号和管道符号)〉nulif not exis...
    打开命令显示:echo on
    关闭命令显示:echo off, @ echo off, (加@表示连echo off都不显示,不然会显示出echo off的命令)
    rem : 注释, 表示不执行rem 后面的脚本,不能出现重定向符号和管道符号
    ::, 双冒号 注释内容(第一个冒号后也可以跟任何一个非字母数字的字符)

    echo 注释内容(不能出现重定向符号和管道符号)〉nul

    if not exist nul 注释内容(不能出现重定向符号和管道符号)

    %注释内容%(可以用作行间注释,不能出现重定向符号和管道符号)

    展开全文
  • BAT文件里注释符号

    千次阅读 2017-03-14 11:57:00
    6、%注释内容%(可以用作行间注释,不能出现重定向符号和管道符号) 7、goto 标签 注释内容(可以用作说明goto的条件和执行内容) 8、:标签 注释内容(可以用作标签下方段的执行内容) 转载...

    BAT文件批处理中注释的方式如下:
         1、:: 注释内容(第一个冒号后也可以跟任何一个非字母数字的字符)
         2、rem 注释内容(不能出现重定向符号和管道符号)
         3、echo 注释内容(不能出现重定向符号和管道符号)〉nul
         4、if not exist nul 注释内容(不能出现重定向符号和管道符号)
         5、:注释内容(注释文本不能与已有标签重名)
         6、%注释内容%(可以用作行间注释,不能出现重定向符号和管道符号)
         7、goto 标签 注释内容(可以用作说明goto的条件和执行内容)
         8、:标签 注释内容(可以用作标签下方段的执行内容)

    转载于:https://my.oschina.net/maojindaoGG/blog/858220

    展开全文
  • bat 脚本

    2020-09-10 11:41:51
    bat脚本基本命令和格式 bat脚本 BAT脚本与shell脚本区别 Shell脚本使用Linux/Unix下的命令,一般文件开头以#号来告诉系统这个脚本需要什么解释器来执行(如:#!/bin/bash采用bash而不是dash来执行)。而bat文件是dos...

    bat脚本基本命令和格式
    bat脚本

    BAT脚本与shell脚本区别
    Shell脚本使用Linux/Unix下的命令,一般文件开头以#号来告诉系统这个脚本需要什么解释器来执行(如:#!/bin/bash采用bash而不是dash来执行)。而bat文件是dos下的批处理文件。批处理文件是无格式的文本文件,它包含一条或多条命令,它的文件扩展名为.bat 或.cmd。

    常用命令1:where、cls、title、color、mode con
    Where

    显示符合搜索模式的文件位置: Where \R C:\ *.dll \F \T

    Cls:清屏

    Title

    设置控制台BAT的标题

    Color

    设置bat显示的背景和前景色:color 02 (背景黑色,字符绿色)

    MODE CON

    设置bat的设置窗体大小:MODE CON COLS=200 LINES=1000

    常用命令2:@、echo、::、rem、pause、:和goto、%以及if
    @

    @的作用就是让脚本在执行时不显示命令部分:@echo off

    echo

    echo命令的另一种用法一:可以用它来显示信息:echo Edit by CODERED

    echo命令的另一种用法二:可以直接编辑文本文件:echo nbtstat -A 192.168.0.1 > a.bat

    ::、rem

    ::和rem是注释命令: ::close echo

    与rem不同的是,::后的字符行在执行时不会回显, 无论是否用echo on打开命令行回显状态,另外,rem 可以用于config.sys文件中.

    pause

    pause是暂停命令:pause

    :和goto

    goto是个跳转命令,: 是一个标签,当程序运行到goto时,将自动跳转到:定义的部分去执行了:

    ……

    goto end

    ……

    :end

    %

    %是批处理变量引导符,为命令行传递给批处理的参数(多个%一起使用的情况除外,以后还将详细介绍):

    set p=”abcdefg” & echo %p:~3,2%

    If

    输入判断: if “%1”=="" goto usage

    存在判断:

    if exist C:\Progra~1\Tencent\AD*.gif del C:\Progra~1\Tencent\AD*.gif

    结果判断: if errorlevel 1 pause & edit %1.asm

    常用命令3:call、find、for、set、shift
    Call

    call命令用来从一个批处理脚本中调用另一个批处理脚本:

    echo %1 This is a call example.

    call a.bat

    find

    find用来在文件中搜索特定字符串,通常也作为条件判断的铺垫程序:

    type a.txt | find “7626” && echo “Congratulations! You have infected GLACIER!”

    shift

    改变传入的参数偏移量,如将%3移位到%2,将%4移位到%3,等等;并且不影响%0和%1:

    SHIFT /2

    Set

    显示、设置或删除cmd.exe环境变量。

    Set path=”D:\”
    Set /p input=请输入: & echo 你输入的是:%input%
    setlocal enabledelayedexpansion
    Set /p input=请输入: & echo 你输入的是:!input!

    For

    基本格式:

    FOR %%variable IN (set) DO command [command-parameters]

    /D参数(匹配目录):

    for /d %%i in (c:*) do echo %%i

    /R参数(匹配文件)

    for /r [c:] %%i in (???.exe) do if exist %%i echo %%i

    /L参数(该集表示以增量形式从开始到结束的一个数字序列)

    for /l %%i in (1,1,5) do @echo %%i

    /F参数

    使用文件解析来处理命令输出、字符串及文件内容。使用迭代变量定义要检查的内容或字符串,并使用各种options选项进一步修改解析方式。默认情况下,/F 传递每个文件每一行的第一个空白分隔符号。跳过空行。

    for /f “[eol=; skip=1] delims=” %%i in (‘net user’) do @echo %%i

    管道命令 |、>、>>、>、>&、<&
    |

    |命令的作用,就是让前一命令的输出当做后一命令的输入:

    help | more,ipconfig /all | find “IPv4”

    会清除掉原有文件中的内容后把新的内容写入原文件: echo @echo off > a.bat

    只会另起一行追加新的内容到原文件中,而不会改动其中的原有内容:

    echo exit >> a.bat

    <

    <是输入重定向命令,从文件中读入命令输入,而不是从键盘中读入

    &

    &将一个句柄的输出写入到另一个句柄的输入中

    <&

    <&刚好和>&相反,从一个句柄读取输入并将其写入到另一个句柄输出中

    组合命令:&、&&、||
    组合命令,顾名思义,就是可以把多个命令组合起来当一个命令来执行,那么这多个命令就要用这些组合命令连接起来放在同一行,因为批处理认行不认命令数目

    &

    &命令作用是用来连接n个DOS命令,并把这些命令按顺序执行,而不管是否有命令执行失败:

    copy a.txt b.txt /y & del a.txt

    &&

    &&可以把它前后两个命令组合起来当一个命令来用,一旦发现有命令出错将不继续执行剩下的命令:

    dir 文件://1%/www/user.mdb && copy 文件://1%/www/user.mdb e:\backup\www

    if exist 文件://1%/www/user.mdb copy 文件://1%/www/user.mdb e:\backup\www

    dir c:\ && dir d:\ > a.txt;

    得不到预期结果必须:

    dir c:\ > a.txt && dir d:\ >> a.txt

    ||

    ||命令执行正确就退出此命令组合,不再执行剩下的命令:

    dir s*.exe || echo Didn’t exist file s*.exe & pause & exit

    其他符号:,、;、””、()、!
    ;

    分号,当命令相同时,可以将不同目标用;来隔离,但执行效果不变,如执行过程中发生错误,则只返回错误报告,但程序仍会执行。

    dir c:;d:;e:;z:\ > 1.txt

    逗号相当于空格,在某些情况下“,”可以用来当做空格使用:

    dir,C:\

    “”

    双引号允许在字符串中包含空格:

    cd,“C:\ program files”

    ()

    小括号在批处理编程中有特殊的作用,左右括号必须成对使用,括号中可以包括多行命令,这些命令将被看成一个整体,视为一条命令行。

    (echo a && echo bb) > 1.txt

    !

    在变量延迟问题中,用来表示变量,即%var%应该表示为!var!

    Set /p input=请输入: & echo 你输入的是:!input!

    if…else…条件语句
    DOS条件语句主要有以下形式

    IF [NOT] ERRORLEVEL number command

    IF [NOT] string1==string2 command

    IF [NOT] EXIST filename command

    增强用法:IF [/I] string1 compare-op string2 command

    增强用法中加上/I就不区分大小写了!

    增强用法中还有一些用来判断数字的符号:

    EQU - 等于

    NEQ - 不等于

    LSS - 小于

    LEQ - 小于或等于

    GTR - 大于

    GEQ - 大于或等于

    上面的command命令都可以用小括号来使用多条命令的组合,包括else子句,组合命令中可以嵌套使用条件或循环命令。

    IF EXIST filename (

    del filename

    ) ELSE (

    echo filename missing

    )

    循环语句
    指定次数循环

    FOR /L %variable IN (start,step,end) DO command [command-parameters]

    组合命令:

    FOR /L %variable IN (start,step,end) DO (

    Command1

    Command2

    ……

    )

    对某集合执行循环语句。

    FOR %%variable IN (set) DO command [command-parameters]

    %%variable
    指定一个单一字母可替换的参数。

    (set)
    指定一个或一组文件。可以使用通配符。

    command
    对每个文件执行的命令,可用小括号使用多条命令组合。

    FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]

    同前面一样,command可以用括号来组合:

    FOR /R [[drive:]path] %variable IN (set) DO (

    Command1

    Command2

    ……

    commandn

    )

    条件循环

    上面的循环结构是用for命令来实现的,for命令循环有一个缺点,就是整个循环被当作一条命令语句,涉及到变量延迟的问题。

    利用goto语句和if条件判断,dos可以实现条件循环:

    @echo off

    set var=0

    rem ************循环开始了

    :continue

    set /a var+=1

    echo 第%var%次循环

    if %var% lss 100 goto continue

    rem ************循环结束了

    echo 循环执行完毕

    pause

    子程序
    在批处理程序中可以调用外部可运行程序,比如exe程序,也可调用其他批处理程序,批处理可以调用本程序中的一个程序段,相当于子程序,这些子程序一般放在主程序后面。

    子程序调用格式:

    CALL :label arguments

    子程序语法:

    :label

    command1

    command2

    commandn

    goto :eof

    在子程序段中,参数%0指标签:label

    子过程一般放在最后,并且注意在主程序最后要加上exit或跳转语句,避免错误的进入子过程。

    子程序和主程序中的变量都是全局变量,其作用范围都是整个批处理程序。

    传至子程序的参数在call语句中指定,在子程序中用%1、%2至%9的形式调用,而子程序返回主程序的数据只需在调用结束后直接引用就可以了,当然也可以指定返回变量。

    打印你好:

    @echo off

    call :sub return

    echo 子程序返回值:%return%

    pause

    goto :eof

    :sub

    set %1=你好

    goto :eof

    设计一个求多个整数相加的子程序:

    @echo off

    set sum=0

    call :sub 10 20 35 40 50

    echo 数据求和结果:%sum%

    pause

    goto :eof

    :sub

    rem 参数1为返回变量名称

    set /a sum+=%1

    shift /1

    if not “%1”=="" goto sub

    goto :eof

    运行结果:155

    变量嵌套与命令嵌套
    和其它编程语言相比,dos功能显得相对简单,要实现比较复杂的功能,需要充分运用各种技巧,变量嵌套与命令嵌套就是此类技巧之一。

    简单的说,命令嵌套首先用一条dos命令生成一个字符串,而这个字符串是另一条dos命令,用call语句调用字符串将其执行,从而得到最终结果。

    用call语句实现命令嵌套:

    @echo off

    set str1=aaa echo ok bbb

    echo 初始字符串:%str1%

    echo 生成命令字符串如下:

    echo %str1:~4,7%

    echo 运行命令字符串生成最终结果为:

    call %str1:~4,7%

    pause

    展开全文
  • bat脚本的常用特殊符号

    千次阅读 2020-06-03 16:13:57
    例:最简单的复制文件自身的方法 copy %0 d:\wind.bat 小技巧:添加行内注释 %注释内容%(可以用作行内注释,不能出现重定向符号和管道符号) 为什么这样呢?此时“注释内容”其实被当作变量,其值是空的,故只起...
  • BAT脚本编写教程

    2017-10-24 22:02:35
    bat批处理,bat脚本
  • Bat脚本教程

    2019-05-16 18:05:08
    title: bat脚本教程v1.0 tags: bat, 自学 ,教程 ,笔记 ,伟伟✌ 本教程编辑器使用小书匠,内容来自网络 bat教程 。稍作处理,方便学习查看。–伟伟✌ 第一章 批处理基础 命令 说明 ASSOC 显示或修改文件...
  • bat脚本

    2019-09-25 17:22:29
    批处理文件还可以像C语言一样使用参数(相当于DOS命令的命令行参数), 这需要用到一个参数表示符号 % %[1-9] 表示参数,参数是指在运行批处理文件时在文件名后加空格(或者Tab)分隔的字符串,变量可以从 %0 到 %9...
  • https://gmt-china.org/blog/bash2bat/ 社区提供的 GMT 绘图脚本多是基于 Linux 下的 bash 脚本,有相当一部分用户并不熟悉 bash,因此有必要介绍如何将 bash 脚本改成 Windows 下可用...注释符号:#=>rem 设...
  • Windows下使用bat脚本批量创建文件夹

    千次阅读 2020-06-12 10:23:49
    环境 Windows10 创建非中文目录 新建bat文件,例如: a.bat, 脚本内容如下 md aa bb cc 双击a.bat运行,效果如下 创建中文目录 修改a.bat,内容如下: ...bat脚本注释 rem : 注释...
  • bat脚本命令

    2020-01-09 17:49:29
    bat脚本命令示例 REM 和 ::、ECHO 和 @、PAUSE、ERRORLEVEL、TITLE、COLOR、mode 配置系统设备、GOTO 和 : 、FIND、START、assoc 和 ftype、pushd 和 popd、CALL、shift、IF、setlocal
  • bat脚本基础教程

    2017-12-20 08:33:00
    bat脚本就是DOS批处理脚本,就是将一系列DOS命令按照一定顺序排列而形成的集合,运行在windows命令行环境上。本文主要介绍bat脚本基础语法,希望完成本文内容学习之后具备基础的bat脚本开发能力,提高工作效率。 为...
  • bat 脚本使用

    千次阅读 多人点赞 2020-01-11 23:35:47
    bat文件是存在于dos/windows中的脚本文件,bat的直接操作对象是dos命令,dos命令是system32下的exe或者cmd可执行程序的子集,长驻于内存中,具有简单、处理速度快的特点,取名为批处理毫无争议,也是非图形shell在...
  • window—BAT脚本

    2016-02-23 23:45:00
    bat脚本注释方法: 1、:: 注释内容(第一个冒号后也可以跟任何一个非字母数字的字符)2、rem 注释内容(不能出现重定向符号和管道符号)3、echo 注释内容(不能出现重定向符号和管道符号)〉nul4、if not exist nul...
  • .bat脚本基本命令语法

    千次阅读 2016-12-27 11:52:08
    .bat脚本基本命令语法
  • BAT脚本

    2018-08-16 10:09:00
    更改文件名  rename *.txt *.doc 原文件名 之后文件名 ...注意:为了防止参数为空的情况,一般会将字符串用双引号(或者其它符号,注意不能使用保留符号)括起来。  如:if [%1]==[A] 或者...
  • windows bat脚本编写

    2018-10-25 18:00:53
    Windows .bat 脚本简单用法介绍: ​ 一.简单批处理内部命令简介   1 .Echo 命令   打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。   语法:   echo [{on...
  • Windows bat脚本之for循环之帮助

    千次阅读 2017-04-20 13:41:05
    windows bat脚本for循环
  • bat脚本教程

    2017-11-06 17:31:04
    批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD。这些命令统称批处理命令。 小知识:可以在键盘上按下Ctrl+C组合键来强行终止一个批处理的执行过程...
  • bat 脚本浅析

    2018-06-27 20:31:33
    基础部分:https://www.cnblogs.com/YangGC/p/6345551.html批处理入门手册之批处理常用DOS命令篇(find findstr)https://www.jb51.net/article/97188.htmBAT 批处理脚本教程... 1.批处理文件是一个“...
  • Bat脚本的故事

    2019-04-03 11:08:00
    因为工作时需要将定时处理的业务抽出来,废弃通过监听定时调用的这种方法,改为通过第三方软件定时执行bat脚本来实现,所以学习了一下bat脚本,整理出一些学习中的基础点和重点。 基础点: (1)bat脚本的标签  ...
  • Windows BAT脚本常用指令解析

    千次阅读 2020-01-15 20:41:41
    BAT脚本 一、概述 首先解决第一个问题,什么是BAT脚本BAT脚本也叫批处理文本,批处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为 .bat 或 .cmd。在命令提示下键入批处理文件的名称,...
  • bat脚本基础教程 https://www.cnblogs.com/linyfeng/p/8072002.html 自己动手太少了。 bat脚本就是DOS批处理脚本,就是将一系列DOS命令按照一定顺序排列而形成的集合,运行在windows命令行环境上。...
  • DOS/ bat脚本

    2018-09-12 09:11:44
    bat脚本命令整理: echo 表示显示此命令后的字符 echo off 表示在此语句后所有运行的命令都不显示命令行本身 @ 与echo off相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,102
精华内容 3,240
关键字:

bat脚本注释符号