精华内容
下载资源
问答
  • 批处理中的变量

    2014-07-18 13:24:10
    批处理中的变量, 我把他分为两类, 分别为" 系统变量" 和" 自定义变量" 1 系统变量 : 他们的值由系统将其根据事先定义的条件自动赋值 , 也就是这些变量系统已经给定义了值 , 不需要我们来给他赋值 ,...

    批处理中的变量, 我把他分为两类, 分别为" 系统变量" 和" 自定义变量"

    1 系统变量 :

    他们的值由系统将其根据事先定义的条件自动赋值 , 也就是这些变量系统已经给定义了值 ,
    不需要我们来给他赋值 , 我们只需要调用而以 我把他们全部列出来 !

    %allusersprofile% 本地 所有用户 配置文件的位置。 C:/Documents and Settings/All Users

    %appdata% 本地默认情况下应用程序存储数据的位置。 C:/Documents and Settings/Administrator/Application Data

    %cd% 本地当前目录字符串。 C:/Documents and Settings/Administrator/ 桌面

    %cd:/=//% 本地当前目录字符串。C://Documents and Settings//Administrator// 桌面

    %cmdcmdline% 本地用来启动当前的 Cmd.exe 的准确命令行。 cmd /c ""C:/Documents and Settings/Administrator/ 桌面/a.bat" "

    %cmdextversion% 系统当前的 命令处理程序扩展 的版本号。2

    %computername% 系统计算机的名称。  xxxxx

    %comspec% 系统命令行解释器可执行程序的准确路径。 C:/WINDOWS/system32/cmd.exe

    %date% 系统当前日期。使用与 date /t 命令相同的格式。由 Cmd.exe 生成。有关 date 命令的详细信息,请参阅Date 。

    %time% 系统当前时间。使用与 time /t 命令相同的格式。由 Cmd.exe 生成。有关 time 命令的详细信息,请参阅Time 。

    %errorlevel% 系统上一条命令的错误代码。通常用非零值表示错误。

    %homedrive% 系统连接到用户主目录的本地工作站驱动器号。基于主目录值而设置。用户主目录是在 本地用户和组 中指定的。 C:

    %homepath% 系统用户主目录的完整路径。基于主目录值而设置。用户主目录是在 本地用户和组 中指定的。/Documents and Settings/Administrator

    %homeshare% 系统用户的共享主目录的网络路径。基于主目录值而设置。用户主目录是在 本地用户和组 中指定的。

    %logonserver% 本地验证当前登录会话的域控制器的名称。 //xxxx

    %number_of_processors% 系统指定安装在计算机上的处理器的数目。

    %os% 系统操作系统名称。Windows 2000 显示其操作系统为 Windows_NT 。 Windows_NT

    %path% 系统指定可执行文件的搜索路径。 C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem

    %pathext% 系统操作系统认为可执行的文件扩展名的列表。 .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH

    %processor_architecture% 系统处理器的芯片体系结构。值:x86  IA64 基于 Itanium        x86

    %processor_identfier% 系统处理器说明。

    %processor_level% 系统计算机上安装的处理器的型号。 15

    %processor_revision% 系统处理器的版本号。     4f02

    %prompt% 本地当前解释程序的命令提示符设置。由 Cmd.exe 生成。 $P$G

    %random% 系统 0  32767 之间的任意十进制数字。由 Cmd.exe 生成。 30580

    %systemdrive% 系统包含 Windows server operating system 根目录(即系统根目录)的驱动器。 C:

    %systemroot% 系统Windows server operating system 根目录的位置。 C:/WINDOWS

    %temp% C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp 和 %tmp% C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp 系统和用户对当前登录用户可用的应用程序所使用的默认临时目录。有些应用程序需要 TEMP ,而其他应用程序则需要 TMP 。

    %userdomain% 本地包含用户帐户的域的名称。 xxxxxx

    %username% 本地当前登录的用户的名称。    Administrator

    %userprofile% 本地当前用户的配置文件的位置。 C:/Documents and Settings/Administrator

    %windir% 操作系统目录的位置。 C:/WINDOWS

    %programfiles% 程序文件夹的位置。 C:/Program Files

    这么多系统变量, 我们如何知道他的值是什么呢 ?
    CMD 里输入
     
    echo %WINDIR%
    windir
     变量名, 不是随便乱输的
     
    !
    这样就能显示一个变量的值了!

    举个实际例子, 比如我们要复制文件到当前帐号的启动目录里就可以这样

    copy d:/1.bat "%USERPROFILE%/ 「开始」菜单/ 程序/ 启动/"

    %USERNAME% 本地 返回当前登录的用户的名称。 注意有空格的目录要用引号引起来

    另外还有一些系统变量, 他们是代表一个意思, 或者一个操作!

    他们分别是%0 %1 %2 %3 %4 %5 ...... 一直到%9 还有一个%*

    %0 这个有点特殊, 有几层意思, 先讲%1-%9 的意思.

    %1 返回批处理的第一个参数 
    %2 
    返回批处理的第二个参数 
    %3-%9 
    依此推类

    反回批处理参数? 到底怎么个返回法?

    我们看这个例子, 把下面的代码保存为test.BAT 然后放到C 盘下

    @echo off
    echo %1 %2 %3 %4
    echo %1
    echo %2
    echo %3
    echo %4

    进入CMD, 输入 cd c:/
    然后输入 test.bat 我是第一个参数 我是第二个参数 我是第三个参数 我是第四个参数

    注意中间的空额, 我们会看到这样的结果:

    我是第一个参数 我是第二个参数 我是第三个参数 我是第四个参数 
    我是第一个参数 
    我是第二个参数 
    我是第三个参数 
    我是第四个参数

    对比下代码,%1 就是我是第一个参数 %2 就是我是第二个参数 
    怎么样理解了吧!

    这些%1 和%9 可以让批处理也能带参数运行, 大大提高批处理功能!

    还有一个%* 他是什么呢? 他的作用不是很大, 只是返回参数而已, 不过他是一次返回全部参数

    的值, 不用在输入%1 %2 来确定一个个的

    例子 
    @echo off
    echo %*

    同样保存为test.bat 放到C 盘 
    进入CMD, 输入 cd c:/
    然后输入 test.bat 我是第一个参数 我是第二个参数 我是第三个参数 我是第四个参数

    可以看到他一次把全部参数都显示出来了

    好现在开始讲那个比较特殊的%0

    %0 这个不是返回参数的值了, 他有两层意思!

    第一层意思: 返回批处理所在绝对路径

    例子 
    @echo off
    echo %0
    pause

    保存为test.BAT 放在桌面运行, 会显示如下结果 
    "C:/Documents and Settings/Administrator/ 
    桌面/test.bat"

    他把当前批处理执行的所在路经打印出来了, 这就是返回批处理所在绝对路径的意思

    第二层意思: 无限循环执行BAT

    例子 :
    @echo off
    net user
    %0

    保存为BAT 执行, 他就会无限循环执行net user 这条命令, 直到你手动停止.

    以上就是批处理中的一些系统变量, 另外还有一些变量, 他们也表示一些功能 ,
    FOR
     命令中的那些就是,FOR 变量已经说过, 就不讲了.

    2 自定义变量

    1. 环境变量的设置有几种方式? 
    设置环境变量有两种方式:第一种是在命令提示符运行窗口中设置;第二种是通过单击  我的电脑  属性  高级 标签的  环境变量  按钮设置。需要注意的是,第一种设置环境变量的方式只对当前运行窗口有效,关闭运行窗口后,设置就不起作用了,而第二种设置环境变量的方式则是永久有效。 

    2.
     如何在命令提示符窗口中设置环境变量? 

      开始  运行  框中输入 “cmd” 后按  确定  按钮,出现命令运行窗口。在命令提示符下输入 “set” 即可查看环境变量设置。要查看具体某个环境变量的设置,比如要查看 path 环境变量的设置,可以输入 “set path” 。要创建一个环境变量,比如要创建一个名为 aa 的,值为 “c:” 的环境变量,可以输入 “set aa=c:” 命令。而要删除一个环境变量,比如要删除 aa 环境变量,则可输入 “set aa=” 命令(注意 = 后面不能有空格)。如何更改一个环境变量的设置呢?更改环境变量有两种情况:一是追加方式,即在不改变环境变量现有设置的情况下,增加变量的值,比如要给环境变量 aa 增加一个值为 “D:” 的设置,可以输入 “set aa=%path%;D:” 。另一种是完全修改方式,对于这种方式,我们可以采用直接创建一个环境变量的方法来实现。 

    3.
     用户变量和系统变量的关系是什么? 

    点击  我的电脑  属性  高级  标签的  环境变量  按钮,出现  环境变量  对话框,如果当前是以Administrator 登录系统的用户,对话框的上面为 Administrator 的用户变量,对话框的下面为系统变量(即相当于系统中所有用户的用户变量)。有的时候我们会看到在用户变量和系统变量中都存在某一个环境变量,比如 path ,那么 path 的值到底是用户变量中的值还是系统变量中的值,或者两者都不是呢?答案是两者都不是。 path 变量的值是用户变量中的值与系统变量中的值的叠加。 

    4.
     改变环境变量和环境变量中的值应该注意什么? 

    环境变量和环境变量的值不要含有空格,也不要用中文,切记!

    要使用自定义变量就得使用set 命令了, 看例子故名思意, 自定义变量就是由我们来给他赋予值的变量

    @echo off
    set var=
     我是值
     

    echo %var%
    pause

    保存为BAT 执行, 我们会看到CMD 里返回一个 " 我是值"

    var 为变量名,= 号右变的是要给变量的值 
    这就是最简单的一种设置变量的方法了

    如果我们想让用户手工输入变量的值, 而不是在代码里指定, 可以用用set 命令的/p 参数

    例子:

    @echo off
    set /p var=
     请输入变量的值
     

    echo %var%
    pause

    var 变量名 = 号右边的是提示语, 不是变量的值 
    变量的值由我们运行后自己用键盘输入

    只键入无参数的SET 命令就可显示当前环境设置。这些设置一般包括COMSPEC 和PATH 环境变量,MS-DOS 用它们帮助在磁盘上寻找程序。PROMPT 、DIRCMD 和COPYCMD 为MS-DOS 使用的其它环境变量。

    当使用SET 指定了variable 和string 的值时,MS-DOS 将指定变量及相关字符串加到环境中。如果环境中已有该变量,则用新的字符串代替老的字符串

    在创建批处理文件时,可用SET 命令创建环境变量。并将它们与%0 到%9 一样使用。也可将变量%0 到%9 作为SET 命令的输入

    从批处理文件中调用环境变量值时,必须用百分符(%) 将变量值括起来

    使用 set /? 查看 SET 的帮助我们发现 SET 除了我上面讲的 
    SET [variable=[string]]
    SET /P variable=[promptString]
    这两种语法外 , 还有如下几种语法 :
    SET /A expression
    环境变量替换已如下增强 
    :
    %PATH:str1=str2%
    %PATH:~10,5%
    %PATH:~-10%
    %PATH:~0,-2%

    这机种语法有什么用处呢 ? 现在我们来一个个讲解他们 
    !

    SET /A expression  
    /A 
    命令行开关指定等号右边的字符串为被评估的数字表达式。该表达式 

    评估器很简单并以递减的优先权顺序支持下列操作 :
    ()                - 
    分组 

    ! ~ -             - 
    一元运算符 
    * / %             - 
    算数运算符 
    + -                 - 
    算数运算符 

    << >>             - 逻辑移位 
    &                - 
    按位 与 
    ^                - 
    按位 异
     

    |                - 
    按位 或
     

    = *= /= %= += -= - 
    赋值
     

       &= ^= |= <<= >>=
    ,                - 
    表达式分隔符 
    上面这些是系统帮助里的内容, 看着是不是有点晕, 没关系我来简单解释一下 :
    set
     的/A 参数就是让SET 可以支持数学符号进行加减等一些数学运算
     
    !
    现在开始举例子介绍这些数学符号的用法
     
    :
    看例子 这里的例子请直接在CMD 下拷贝命令运行, 不需要保存为
     
    BAT!
    set /a var=1 + 1  
    set /a 
    语法, var 变量名 1 + 1 数学式子
     

    拷贝运行后会直接显示一个2, 或者运行完后我们输入echo %var%, 也是二, 这就是 
    一个简单的加法运算 !
    set /a var=2 - 1   
    结果是多少呢? 如果你看不到结果就
     
    echo %var%.....
    set /a var=2 * 2 
    乘法运算
     

    set /a var=2 / 2 
    除法运算 
    set /a var=(1+1) + (1+1) 
    结果等于看得懂吧 !
    set /a a=1+1,b=2+1,c=3+1   
    运行后会显示一个4, 但我们用
     

    echo %a% %b% %c% 
    后看结果, 会发现其他数学运算也有效果!, 这就是" 斗" 号的 
    作用 !
    有时候我们需要直接在原变量进行加减操作就可以用这种语法
     

    set /a var+=1   
    这样的语法对应原始语法就是 set /a var = %var% + 1
    都是一样的结果, 在原变量的值上在进行数学运算, 不过这样写简单一点
     

    在来一个 :  
    set /a var*=2 
    其他都这么用, 只要帮助里有这个语法
     
    !
    另外还有一些用逻辑或取余操作符, 这些符号, 按照上面的使用方法会报错的
     

    比如我们在CMD 里输入set /a var=1 & 1 " 与运算", 他并不会显示为1, 而是报错 ,
    为什么? 对于这样的" 逻辑或取余操作符", 我们需要把他们用双引号引起来, 看例子
     


    set /a var= 1 "&" 1 
    这样结果就显示出来了, 其他逻辑或取余操作符用法 
    set /a var= 1 "+" 1 
    异运算 
    set /a var= 1 "%" 1   
    取模运算 
    set /a var= 2 "<<" 2 
    次方运算 
    set /a var= 4 ">>" 2 
    这个不太记得数学里的叫法 ....
    还有几个数学不太行, 搞不清楚了.... 不列出来了
     
    ,
    这些符号也可以用&= ^= |= <<= >>= 这样的简单用法如
     

    set /a var"&=" 1 
    等于set /a var = %var% "&" 1 注意引号 
    好符号说到这, 现在说 %PATH:str1=str2%
    这个是替换变量值的内容, 看例子
     

    @echo off
    set a= bbs.verybat.org
    echo 
    替换前的值 : "%a%"
    set var=%a: =%
    echo 
    替换后的值
     
    : "%var%"
    pause
    对比一下, 我们发现他把变量%a% 的空格给替换掉了, 从这个例子, 我们就可以发现
     

    %PATH:str1=str2% 
    这个操作就是把变量%PATH% 的里的str1 全部用str2 替换 
    比如我们把上面的例子改成这样 
    @echo off
    set a=bbs.verybat.org
    echo 
    替换前的值 : "%a%"
    set var=%a:.=
     伤脑筋
     
    %
    echo 
    替换后的值
     
    : "%var%"
    pause
    解释set var=%a:.= 伤脑筋
     
    %
    set
     命令 var 变量名 字a 是要进行字符替换的变量的值,"." 为要替换的值
     
    ,
    "
     伤脑筋" 为替换后的值
     
    !
    执行后就会把变量%a% 里面的"." 全部替换为" 伤脑筋
     
    "
    这就是set 的替换字符的很好的功能! 先讲到这
     

    %PATH:~10,5%   
    这个什么意思, 看例子 :

    @echo off
    set a=bbs.verybat.org
    set var=%a:~1,2%
    echo %var%
    pause

    执行后, 我们会发现只显示了"bs" 两个字母, 我们的变量%a% 的值不是为bbs.verybat.org 吗
     

    怎么只显示了第2 个字母和第3 个字母"bs", 分析一结果我们就可以很容易看出 
    %PATH:~10,5% 
    就是显示变量PATH 里指定几位的值 !
    分析
     
    set var=%a:~1,2%
       set
     命令 var 变量值   a 要进行字符操作的变量 "1" 从变量"a" 第几位开始显示 "2" 显示几位
     

    和起来就是把变量a 的值从第一位开始, 把后两位赋予给变量 var
    就样因该明白了吧
     
    ~
    其他两种语法
     

    %PATH:~-10%
    %PATH:~0,-2%
    他们也是显示指定变量指定几位的值得的意思 
    %PATH:~-10% 
    例子 
    @echo off
    set a=bbs.verybat.org
    set var=%a:~-3%
    echo %var%
    pause
    这个就是把变量a 倒数3 位的值给变量 VAR
    当然我们也可以改成这样
     

    @echo off
    set a=bbs.verybat.org
    set var=%a:~3%
    echo %var%
    pause
    这个就是把变量a 的从第3 位开始后面全部的值给变量 VAR
    %PATH:~0,-2%   
    例子
     

    @echo off
    set a=bbs.verybat.org
    set var=%a:~0,-3%
    echo %var%
    pause
    执行后, 我们发现显示的是"bbs.verybat", 少了 ".cn"
    从结果分析, 很容易分析出, 这是把变量a 的值从0 位开始
     
    ,
    到倒数第三位之间的值全部赋予给
     
    var
    如果改成这样
     


    @echo off
    set a=bbs.verybat.org
    set var=%a:~2,-3%
    echo %var%
    pause
    那么他就是显示从第2 位开始减去倒数三位字符的值, 并赋予给变量var

    PATH    格式 :PATH [ 盘符 1][ 路径 1][;][ 盘符 2][ 路径 2][;...]

    1.       DOS 命令文件是指扩展名为 .COM  .EXE  .BAT 的文件 , 也称为可执行文件

    2.       . 在执行 DOS 外部命令时 ,DOS 首先在当前盘当前目录中寻找该文件 , 若找到 , 则运行 ; 如找不到 ,DOS 就会到PATH 命令所设置的路径中 , 继续查找该文件 , 以便执行 .

    PATH变量的作用就是为了快速的执行所需要的命令设置可执行文件搜索路径


     
    展开全文
  • 这篇文章主要介绍了DOS批处理高级教程 第四章 批处理中的变量,我把他分为两类,分别为系统变量和自定义变量,需要的朋友可以参考下 批处理中的变量,我把他分为两类,分别为"系统变量"和"自定义变量" ...
    这篇文章主要介绍了DOS批处理高级教程 第四章 批处理中的变量,我把他分为两类,分别为系统变量和自定义变量,需要的朋友可以参考下

    批处理中的变量,我把他分为两类,分别为"系统变量"和"自定义变量"

    我们现在来详解这两个变量!

    一、系统变量

    他们的值由系统将其根据事先定义的条件自动赋值,也就是这些变量系统已经给他们定义了值,
    不需要我们来给他赋值,我们只需要调用而以!  我把他们全部列出来!

    %ALLUSERSPROFILE% 本地 返回“所有用户”配置文件的位置。
    %APPDATA% 本地 返回默认情况下应用程序存储数据的位置。
    %CD% 本地 返回当前目录字符串。
    %CMDCMDLINE% 本地 返回用来启动当前的 Cmd.exe 的准确命令行。
    %CMDEXTVERSION% 系统 返回当前的“命令处理程序扩展”的版本号。
    %COMPUTERNAME%  系统 返回计算机的名称。
    %COMSPEC%  系统 返回命令行解释器可执行程序的准确路径。
    %DATE%  系统 返回当前日期。使用与 date /t 命令相同的格式。由 Cmd.exe 生成。有关date 命令的详细信息,请参阅 Date。
    %ERRORLEVEL%  系统 返回上一条命令的错误代码。通常用非零值表示错误。
    %HOMEDRIVE%  系统 返回连接到用户主目录的本地工作站驱动器号。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。
    %HOMEPATH%  系统 返回用户主目录的完整路径。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。
    %HOMESHARE%  系统 返回用户的共享主目录的网络路径。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。
    %LOGONSERVER%  本地 返回验证当前登录会话的域控制器的名称。
    %NUMBER_OF_PROCESSORS%  系统 指定安装在计算机上的处理器的数目。
    %OS%  系统 返回操作系统名称。Windows 2000 显示其操作系统为 Windows_NT。
    %PATH% 系统 指定可执行文件的搜索路径。
    %PATHEXT% 系统 返回操作系统认为可执行的文件扩展名的列表。
    %PROCESSOR_ARCHITECTURE%  系统 返回处理器的芯片体系结构。值:x86 或 IA64 基于Itanium
    %PROCESSOR_IDENTFIER% 系统 返回处理器说明。
    %PROCESSOR_LEVEL%  系统 返回计算机上安装的处理器的型号。
    %PROCESSOR_REVISION% 系统 返回处理器的版本号。
    %PROMPT% 本地 返回当前解释程序的命令提示符设置。由 Cmd.exe 生成。
    %RANDOM% 系统 返回 0 到 32767 之间的任意十进制数字。由 Cmd.exe 生成。
    %SYSTEMDRIVE% 系统 返回包含 Windows server operating system 根目录(即系统根目录)的驱动器。
    %SYSTEMROOT%  系统 返回 Windows server operating system 根目录的位置。
    %TEMP% 和 %TMP% 系统和用户 返回对当前登录用户可用的应用程序所使用的默认临时目录。有些应用程序需要 TEMP,而其他应用程序则需要 TMP。
    %TIME% 系统 返回当前时间。使用与 time /t 命令相同的格式。由 Cmd.exe 生成。有关time 命令的详细信息,请参阅 Time。
    %USERDOMAIN% 本地 返回包含用户帐户的域的名称。
    %USERNAME% 本地 返回当前登录的用户的名称。
    %USERPROFILE% 本地 返回当前用户的配置文件的位置。
    %WINDIR% 系统 返回操作系统目录的位置。


    这么多系统变量,我们如何知道他的值是什么呢?
    在CMD里输入  echo %WINDIR%

    这样就能显示一个变量的值了!

    举个实际例子,比如我们要复制文件到当前帐号的启动目录里就可以这样

    copy d:\1.bat "%USERPROFILE%\「开始」菜单\程序\启动\"
    %USERNAME% 本地 返回当前登录的用户的名称。  注意有空格的目录要用引号引起来

    另外还有一些系统变量,他们是代表一个意思,或者一个操作!

    他们分别是%0 %1 %2 %3 %4 %5 ......一直到%9 还有一个%*

    %0 这个有点特殊,有几层意思,先讲%1-%9的意思.
    %1 返回批处理的第一个参数
    %2 返回批处理的第二个参数
    %3-%9依此推类

    反回批处理参数?到底怎么个返回法?

    我们看这个例子,把下面的代码保存为test.BAT然后放到C盘下

    ?
    1
    2
    3
    4
    5
    6
    @ echo off
    echo %1 %2 %3 %4
    echo %1
    echo %2
    echo %3
    echo %4

    进入CMD,输入cd c:\
    然后输入 test.bat 我是第一个参数 我是第二个参数 我是第三个参数 我是第四个参数

    注意中间的空格,我们会看到这样的结果:

    对比下代码,%1就是”我是第一个参数” %2就是”我是第二个参数”
    怎么样理解了吧!

    这些%1和%9可以让批处理也能带参数运行,大大提高批处理功能!

    还有一个%* 他是什么呢?他的作用不是很大,只是返回参数而已,不过他是一次返回全部参数的值,不用在输入%1 %2来确定一个个的

    例子

    ?
    1
    2
    @ echo off
    echo %*

    同样保存为test.bat 放到C盘
    进入CMD,输入cd c:\

    然后输入 test.bat 我是第一个参数 我是第二个参数 我是第三个参数 我是第四个参数

    可以看到他一次把全部参数都显示出来了

    好现在开始讲那个比较特殊的%0

    %0 这个不是返回参数的值了,他有两层意思!

    第一层意思:返回批处理所在绝对路径

    例子:

    ?
    1
    2
    3
    @ echo off
    echo %0
    pause

    保存为test.BAT放在桌面运行,会显示如下结果

    他把当前批处理执行的所在路经打印出来了,这就是返回批处理所在绝对路径的意思

    第二层意思:无限循环执行BAT

    例子:

    ?
    1
    2
    3
    @ echo off
    net user
    %0

    保存为BAT执行,他就会无限循环执行net user这条命令,直到你手动停止(ctrl+c停止).
    龙卷风补充:其实%0就是第一参数%1前面那个参数,当然就是批处理文件名(包括路径)。

    以上就是批处理中的一些系统变量,另外还有一些变量,他们也表示一些功能,
    FOR命令中的那些就是,FOR变量已经说过,就不讲了.


    二、自定义变量

    故名思意,自定义变量就是由我们来给他赋予值的变量

    要使用自定义变量就得使用set命令了,看例子.

    ?
    1
    2
    3
    4
    @ echo off
    set var=我是脚本之家
    echo %var%
    pause

    保存为BAT执行,我们会看到CMD里返回一个 "我是脚本之家"

    var为变量名,=号右变的是要给变量的值
    这就是最简单的一种设置变量的方法了

    如果我们想让用户手工输入变量的值,而不是在代码里指定,可以用用set命令的/p参数

    例子:

    ?
    1
    2
    3
    4
    @ echo off
    set /p var=请输入变量的值
    echo %var%
    pause

    var变量名 =号右边的是提示语,不是变量的值变量的值由我们运行后自己用键盘输入!

    set /p的用法可以通过set /?查看帮助文件

    /P 命令行开关允许将变量数值设成用户输入的一行输入。读取输入行之前,显示指定的 promptString。promptString 可以是空的。

    以上内容脚本之家小编亲测,配图

    展开全文
  • 关于批处理中的变量

    2014-11-07 16:41:53
    批处理中的变量,我把他分为两类,分别为“系统变量”和“自定义变量” 我们现在来详解这两个变量! 系统变量: 他们的值由系统将其根据事先定义的条件自动赋值,也就是这些变量系统已经给他们定义了值,不需要我们...
    

    批处理中的变量,我把他分为两类,分别为“系统变量”和“自定义变量”

    我们现在来详解这两个变量!

    系统变量:

    他们的值由系统将其根据事先定义的条件自动赋值,也就是这些变量系统已经给他们定义了值,不需要我们来给他赋值,我们只需要调用而已,我把他们全部列出来!

    %ALLUSERSPROFILE%  (allusersprofile)本地 返回“所有用户”配置文件的位置。 C:Documents and SettingsAll Users

    %APPDATA% (appdata)本地返回默认情况下应用程序存储数据的位置。 C:Documents and SettingsAdministratorApplication Data

    %CD% (cd)本地返回当前目录字符串。 C:Documents and SettingsAdministrator桌面

    %CMDCMDLINE% (cmdcmdline)本地返回用来启动当前的 Cmd.exe 的准确命令行。 cmd /c ""C:Documents and SettingsAdministrator桌面a.bat" "

    %CMDEXTVERSION%(cmdextversion)系统返回当前的“命令处理程序扩展”的版本号。2

    %COMPUTERNAME% (computername)系统返回计算机的名称。 xxxx

    %COMSPEC% (comspec) 系统返回命令行解释器可执行程序的准确路径。 C:WINDOWSsystem32cmd.exe

    %DATE% 系统返回当前日期。使用与 date /t 命令相同的格式。由 Cmd.exe 生成。有关 date 命令的详细信息,请参阅 Date。

    %ERRORLEVEL% (errorlevel) 系统返回上一条命令的错误代码。通常用非零值表示错误。

    %HOMEDRIVE% (homedrive)系统返回连接到用户主目录的本地工作站驱动器号。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。 C:

    %HOMEPATH% (homepath) 系统返回用户主目录的完整路径。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。 Documents and SettingsAdministrator

    %HOMESHARE% (homeshare) 系统返回用户的共享主目录的网络路径。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。

    %LOGONSERVER% (logonserver) 本地返回验证当前登录会话的域控制器的名称 / xxxx

    %NUMBER_OF_PROCESSORS% (numeer_of_processors) 系统指定安装在计算机上的处理器的数目。

    %OS% (os)系统返回操作系统名称。Windows 2000 显示其操作系统为 Windows_NT。 Windows_NT

    %PATH% (path)系统指定可执行文件的搜索路径。 C:WINDOWSsystem32;C:WINDOWS;C:WINDOWSSystem32Wbem;C:Program FilesVc++ToolsWinNT;C:Program FilesVc++MSDev98Bin;C:Program FilesVc++Tools;C:Program FilesVC98in

    %PATHEXT% (pathext)系统返回操作系统认为可执行的文件扩展名的列表。 .COM .EXE .BAT .CMD .VBS .VBE .JS .JSE .WSF .WSH

    %PROCESSOR_ARCHITECTURE% (processor_architecture) 系统返回处理器的芯片体系结构。值:x86 或 IA64 基于Itanium x86

    %PROCESSOR_IDENTFIER% (processor_identfier)系统返回处理器说明。

    %PROCESSOR_LEVEL% (processor_level)系统返回计算机上安装的处理器的型号。 15

    %PROCESSOR_REVISION% (processor_revision)系统返回处理器的版本号。 4f02

    %PROMPT% (prompt)本地 返回当前解释程序的命令提示符设置。由 Cmd.exe 生成。$P$G

    %RANDOM% (random)系统返回 0 到 32767 之间的任意十进制数字。由 Cmd.exe 生成。 30580

    %SYSTEMDRIVE% (systemdrive)系统返回包含 Windows server operating system 根目录(即系统根目录)的驱动器。 C:

    %SYSTEMROOT% (systemroot)系统返回 Windows server operating system 根目录的位置。C:WINDOWS

    %TEMP%(temp) C:DOCUME~1ADMINI~1LOCALS~1Temp和 %TMP% (tmp)C:DOCUME~1ADMINI~1LOCALS~1Temp系统和用户返回对当前登录用户可用的应用程序所使用的默认临时目录。有些应用程序需要 TEMP,而其他应用程序则需要 TMP。

    %TIME% 系统 返回当前时间。使用与 time /t 命令相同的格式。由 Cmd.exe 生成。有关 time 命令的详细信息,请参阅 Time。

    %USERDOMAIN% (userdomain)本地返回包含用户帐户的域的名称。 xxxx

    %USERNAME% (username)本地返回当前登录的用户的名称。 Administrator

    %USERPROFILE% (userprofile)本地返回当前用户的配置文件的位置。 C:Documents and SettingsAdministrator

    %WINDIR%(windir) 系统 返回操作系统目录的位置。 C:WINDOWS


    这么多系统变量,我们如何知道他的值是什么呢?

    在CMD里输入 echo %WINDIR%

    windir变量名,不是随便乱输的!

    这样就能显示一个变量的值了!

    举个实际例子,比如我们要复制文件到当前帐号的启动目录里就可以这样

    copy d:1.bat "%USERPROFILE%「开始」菜单程序启动"

    %USERNAME% 本地 返回当前登录的用户的名称。 注意有空格的目录要用引号引起来

    另外还有一些系统变量,他们是代表一个意思,或者一个操作!

    他们分别是%0 %1 %2 %3 %4 %5 ......一直到%9 还有一个%*

    %0 这个有点特殊,有几层意思,先讲%1-%9的意思.

    %1 返回批处理的第一个参数

    %2 返回批处理的第二个参数

    %3-%9依此推类

    反回批处理参数?到底怎么个返回法?

    我们看这个例子,把下面的代码保存为test.BAT然后放到C盘下

    @echo off

    echo %1 %2 %3 %4

    echo %1

    echo %2

    echo %3

    echo %4

    进入CMD,输入cd c:

    然后输入 test.bat 我是第一个参数 我是第二个参数 我是第三个参数 我是第四个参数

    注意中间的空额,我们会看到这样的结果:

    我是第一个参数 我是第二个参数 我是第三个参数 我是第四个参数

    我是第一个参数

    我是第二个参数

    我是第三个参数

    我是第四个参数

    对比下代码,%1就是我是第一个参数 %2就是我是第二个参数

    怎么样理解了吧!

    这些%1和%9可以让批处理也能带参数运行,大大提高批处理功能!

    还有一个%* 他是什么呢?他的作用不是很大,只是返回参数而已,不过他是一次返回全部参数的值,不用在输入%1 %2来确定一个个的

    例子

    @echo off

    echo %*

    同样保存为test.bat 放到C盘

    进入CMD,输入cd c:

    然后输入 test.bat 我是第一个参数 我是第二个参数 我是第三个参数 我是第四个参数

    可以看到他一次把全部参数都显示出来了


    好现在开始讲那个比较特殊的%0

    %0 这个不是返回参数的值了,他有两层意思!

    第一层意思:返回批处理所在绝对路径

    例子:

    @echo off

    echo %0

    pause

    保存为test.BAT放在桌面运行,会显示如下结果

    "C:Documents and SettingsAdministrator桌面 est.bat"

    他把当前批处理执行的所在路经打印出来了,这就是返回批处理所在绝对路径的意思

    第二层意思:无限循环执行BAT

    例子:

    @echo off

    net user

    %0

    保存为BAT执行,他就会无限循环执行net user这条命令,直到你手动停止.

    以上就是批处理中的一些系统变量,另外还有一些变量,他们也表示一些功能,

    FOR命令中的那些就是,FOR变量已经说过,就不讲了.


    自定义变量

    故名思意,自定义变量就是由我们来给他赋予值的变量要使用自定义变量就得使用set命令了,看例子.

    @echo off

    set var=我是值

    echo %var%

    pause

    保存为BAT执行,我们会看到CMD里返回一个 "我是值"

    var为变量名,=号右变的是要给变量的值

    这就是最简单的一种设置变量的方法了

    如果我们想让用户手工输入变量的值,而不是在代码里指定,可以用用set命令的/p参数

    例子:

    @echo off

    set /p var=请输入变量的值

    echo %var%

    pause

    var变量名 =号右边的是提示语,不是变量的值

    变量的值由我们运行后自己用键盘输入!

    展开全文
  • windos批处理中的变量

    千次阅读 2014-08-27 11:29:49
    批处理中的变量 一、 系统变量 他们的值由系统将其依据事先定义的条件主动赋值,也就是这些变量体系已经给他们定义了值,不须要我们来给他赋值,我们只须要调用而以! 我把他们全体列出来!   1. %ALLUSERSPROFILE...

    批处理中的变量

    一、    系统变量

    他们的值由系统将其依据事先定义的条件主动赋值,也就是这些变量体系已经给他们定义了值,不须要我们来给他赋值,我们只须要调用而以! 我把他们全体列出来!

     

    1.   %ALLUSERSPROFILE%

    返回“所有用户”配置文件的地位。

    示例:C:\Documents and Settings\All Users

    2.   %APPDATA%

    本地返回默认情形下利用程序存储数据的地位。

    示例:C:\Documents andSettings\Administrator\Application Data

    3.   %CD%

    本地返回当前目录字符串。

    示例:E:\堂\ebook\小脚本

    4.   %CMDCMDLINE%

    本地返回用来启动当前的 Cmd.exe 的正确命令行。

    示例:cmd /c ""E:\堂\ebook\小脚本\2.bat" "

    5.   %CMDEXTVERSION%

    系统返回当前的“命令处理程序扩大”的版本号。

    示例:2

    6.   %COMPUTERNAME%

    系统返回盘算机的名称。

    示例:HP05281125

    7.   %COMSPEC%

    体系返回命令行说明器可履行程序的正确路径。

    示例: C:\WINDOWS\system32\cmd.exe

    8.   %DATE%

    系统返回当前日期。使用与 date /t 命令雷同的格局。由 Cmd.exe 生成。有关 date 命令的具体信息,请参阅 Date。

    示例:2011-01-12 星期三

    9.   %ERRORLEVEL%

    系统返回上一条命令的过错代码。通常用非零值表现毛病。

    示例:9009

    10.        %HOMEDRIVE%

    系统返回衔接到用户主目录的本地工作站驱动器号。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。

    示例:C:

    11.        %HOMEPATH%

    体系返回用户主目录的完全路径。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。

    示例:\Documents andSettings\Administrator

    12.        %HOMESHARE%

    系统返回用户的共享主目录的网络路径。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。

    示例:无

    13.        %LOGONSERVER%

    本地返回验证当前登录会话的域把持器的名称。

    示例:\\HP05281125

    14.        %NUMBER_OF_PROCESSORS%

    系统指定安装在盘算机上的处理器的数目。

    示例:2

    15.        %OS%

    系统返回操作系统名称。Windows 2000 显示其操作系统为 Windows_NT。

    示例:Windows_NT

    16.        %PATH%

    系统指定可执行文件的搜索路径。

    示例:C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem

     

    17.        %PATHEXT%

    系统返回操作系统以为可执行的文件扩大名的列表。

    示例:.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH

     

    18.        %PROCESSOR_ARCHITECTURE%

    系统返回处理器的芯片系统构造。

    示例:x86

    19.        %PROCESSOR_IDENTFIER%

    系统返回处理器阐明。

    示例:空

    20.        %PROCESSOR_LEVEL%

    系统返回盘算机上安装的处理器的型号。

    示例:6

    21.        %PROCESSOR_REVISION%

    系统返回处理器的版本号。

    示例:170a

    22.        %PROMPT%

    本地 返回当前说明程序的命令提醒符设置。由 Cmd.exe 天生。

    示例:$P$G

    23.        %RANDOM%

    系统返回 0 到 32767 之间的任意十进制数字。由 Cmd.exe生成。

    示例:30848

    24.        %SYSTEMDRIVE%

    系统返回包括 Windows server operating system根目录(即系统根目录)的驱动器。

    示例:C:

    25.        %SYSTEMROOT%

    系统返回 Windows server operating system 根目录的位置。C:\WINDOWS。

    示例:C:\WINDOWS

    26.        %TEMP%

    系统和用户返回对当前登录用户可用的运用程序所应用的默认临时目录。有些利用程序须要 TEMP,而其他利用程序则需要TMP。

    示例:C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp

    27.        %TIME%

    系统 返回当前时光。应用与 time /t 命令雷同的格局。由 Cmd.exe 天生。有关 time 命令的具体信息,请参阅 Time。

    示例:19:55:12.75

    28.        %USERDOMAIN%

    本地返回包括用户帐户的域的名称。

    示例:HP05281125

    29.        %USERNAME%

    本地返回当前登录的用户的名称。

    示例:Administrator

    30.        %USERPROFILE%

    本地返回当前用户的配置文件的位置。

    示例:C:\Documents andSettings\Administrator

    31.        %WINDIR%

    系统 返回操作系统目录的地位。

    示例:C:\WINDOWS

     

    这么多系统变量,我们如何知道他的值是什么呢?

    在CMD里输入 echo %WINDIR%

    windir变量名,不是随意乱输的!

    这样就能显示一个变量的值了!

     

    举个实际例子,比如我们要复制文件到当前帐号的启动目录里就可以这样

    copyd:\1.bat "%USERPROFILE%\「开始」菜单\程序\启动\"

    %USERNAME%本地 返回当前登录的用户的名称。 注意有空格的目录要用引号引起来

    另外还有一些系统变量,他们是代表一个意思,或者一个操作!

    他们分辨是%0 %1 %2 %3 %4 %5 ......一直到%9 还有一个%*

    %0这个有点特别,有几层意思,先讲%1-%9的意思.

    32.        %1~%9

    %1返回批处理的第一个参数

    %2返回批处理的第二个参数

    %3-%9依此推类

     

    反回批处置参数?到底怎么个返回法?

    我们看这个例子,把下面的代码保存为test.BAT然后放到C盘下

     

    @echooff

    echo%1 %2 %3 %4

    echo%1

    echo%2

    echo%3

    echo%4

     

    进入CMD,输入cd c:\

    然后输入 test.bat 我是第一个参数 我是第二个参数 我是第三个参数 我是第四个参数

    注意中间的空额,我们会看到这样的成果:

     

    我是第一个参数 我是第二个参数 我是第三个参数 我是第四个参数

    我是第一个参数

    我是第二个参数

    我是第三个参数

    我是第四个参数

     

    对照下代码,%1就是我是第一个参数 %2就是我是第二个参数

     

    这些%1和%9可以让批处理也能带参数运行,大大进步批处置功效!

    33.        %*

    他是什么呢?他的作用不是很大,只是返回参数而已,不过他是一次返回全体参数的值,不用在输进%1 %2来断定一个个的

     

    例子

    @echooff

    echo%*

     

    同样保留为test.bat 放到C盘

    进入CMD,输入cd c:\

    然后输进 test.bat 我是第一个参数 我是第二个参数 我是第三个参数 我是第四个参数

    可以看到他一次把全体参数都显示出来了

     

    34.        %0

    好现在开始讲那个比拟特别的%0

    %0这个不是返回参数的值了,他有两层意思!

    第一层意思:返回批处理所在尽对路径

    例子:

    @echo off

    echo%0

    pause

     

    保留为test.BAT放在桌面运行,会显示如下成果

    "C:\Documentsand Settings\Administrator\桌面\test.bat"

     

    他把当前批处理执行的所在路经打印出来了,这就是返回批处理所在尽对路径的意思

     

    第二层意思:无穷循环执行BAT

     

    例子:

    @echooff

    netuser

    %0

     

    保存为BAT履行,他就会无穷循环执行net user这条命令,直到你手动结束.

    以上就是批处理中的一些系统变量,另外还有一些变量,他们也表现一些功效,

    FOR命令中的那些就是,FOR变量已经说过,就不讲了.

     

    二、    自定义变量

    顾名思义,自定义变量就是由我们来给他赋予值的变量要应用自定义变量就得使用set命令了,看例子。

     

    @echooff

    setvar=我是值

    echo%var%

    pause

     

    保留为BAT履行,我们会看到CMD里返回一个 "我是值"

    var为变量名,=号右变的是要给变量的值

    这就是最简略的一种设置变量的方式了

    假如我们想让用户手工输入变量的值,而不是在代码里指定,可以用用set命令的/p参数

    例子:

    @echooff

    set/p var=请输进变量的值

    echo%var%

    pause

     

    var变量名 =号右边的是提醒语,不是变量的值

    变量的值由我们运行后自己用键盘输入!

     

    展开全文
  • 有时候windows的批处理能带来很方便的操作,批处理也有变量声明,下面一段就是说的如何使用批处理中的变量。 set 功能一览 [设置变量] 格式:set 变量名=变量值 详细:被设定的变量以%变量名%引用 [取消...
  • DOS批处理高级教程:第一章 批处理基础DOS批处理高级教程:第二章 DOS循环for命令详解DOS批处理高级教程:第三章 for命令中的变量DOS批处理高级教程:第四章 批处理中的变量DOS批处理高级教程:第五章 set命令详解...
  • 批处理中的变量,我把他分为两类,分别为"系统变量"和"自定义变量" 我们现在来详解这两个变量! 一、系统变量 他们的值由系统将其根据事先定义的条件自动赋值,也就是这些变量系统已经给他们定义了值, 不需要...
  • 有时候windows的批处理能带来很方便的操作,批处理也有变量声明,下面一段就是说的如何使用批处理中的变量。 set 功能一览 [设置变量] 格式:set 变量名=变量值 详细:被设定的变量以%变量名%引用 [取消变量] ...
  • 批处理入门 -- 批处理中的变量

    千次阅读 2008-04-28 13:43:00
    批处理入门 -- 批处理中的变量批处理中的变量,我把他分为两类,分别为"系统变量"和"自定义变量"系统变量:他们的值由系统将其根据事先定义的条件自动赋值,也就是这些变量系统已经给他们定义了值,不需要我们来给他赋值,...
  • 有时候windows的批处理能带来很方便的操作,批处理也有变量声明,下面一段就是说的如何使用批处理中的变量。 set 功能一览 [设置变量] 格式:set 变量名=变量值 详细:被设定的变量以%变量名%引用 [取消变量] ...
  • 批处理中的变量分为两类:系统变量 和 自定义变量 一、系统变量 系统变量的值由系统将其根据事先定义的条件自动赋值,即 这些变量系统已经给它们定义了值,不需要给它赋值,只需 要调用即可。如下: %...
  • 批处理中的变量简介

    千次阅读 2007-07-28 10:56:00
    转自:http://hi.baidu.com/axz20/blog/item/e232e32a1739512fd52af14a.html批处理中的变量,我把他分为两类,分别为"系统变量"和"自定义变量"我们现在来详解这两个变量!系统变量:他们的值由系统将其根据事先定义的...
  • 批处理中的变量,我把他分为两类,分别为"系统变量"和"自定义变量" 我们现在来详解这两个变量! 一、系统变量 他们的值由系统将其根据事先定义的条件自动赋值,也就是这些变量系统已经给他们定义了值, 不需要...
  • 批处理中的变量,我把他分为两类,分别为"系统变量"和"自定义变量" 我们现在来详解这两个变量! 一、系统变量 他们的值由系统将其根据事先定义的条件自动赋值,也就是这些变量系统已经给...
  • 06-CMD_批处理中的变量

    2013-07-14 16:05:15
    批处理中的变量 一, 系统变量   1, %系统变量名%  概念:  他们的值由系统将其根据事先定义的条件自动赋值.  即, 系统已经定义好, 且赋值了,我们可以直接拿来用.  如下: 使用 echo %...% 即可打印出...
  • %PROMPT% : 列出了当前命令解释器的命令提示设置。 %RANDOM% : 列出界于0 和 32767之间的随机十进制数。 %SESSIONNAME% : 列出连接到终端服务会话时的连接和会话名。 %SYSTEMDRIVE% : 列出了Windows启动目录所在...
  • http://hi.chinaunix.net/?uid-20161617-action-viewspace-itemid-31071    BAT教程:第四节(批处理中的变量) 批处理中的变量,我把他分为两类,分别为"系统变量"和"自定义变量" 系统变量: 他

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,810
精华内容 7,524
关键字:

批处理设置日期变量