批处理中的变量

set 功能一览
[设置变量]
格式:set 变量名=变量值
详细:被设定的变量以%变量名%引用

[取消变量]
格式:set 变量名=
详细:取消后的变量若被引用%变量名%将为空

[展示变量]
格式:set 变量名
详细:展示以变量名开头的所有变量的值

[列出所有可用的变量]
格式:set

[计算器]
格式:set /a 表达式
示例:set /a 1+2*3 输出 7

!注意!
set不能用在复合语句里面比如if 1==1 set a=2或者for %%i in (a) do set a=2

预定义的变量

下面是些已经被底层定义好可以直接使用的变量:不会出现在 SET 显示的变量列表中
%CD% - 扩展到当前目录字符串。
%DATE% - 用跟 DATE 命令同样的格式扩展到当前日期。
%TIME% - 用跟 TIME 命令同样的格式扩展到当前时间。
%RANDOM% - 扩展到 0 和 32767 之间的任意十进制数字。
%ERRORLEVEL% - 扩展到当前 ERRORLEVEL 数值。
%CMDEXTVERSION% - 扩展到当前命令处理器扩展名版本号。
%CMDCMDLINE% - 扩展到调用命令处理器的原始命令行。
%0 bat的完整路径名如"C:\Windows\system32\xxx.bat"
%1 bat参数1依次类推%2参数2...
%path% - 当前的环境变量。以分号隔开的路径列表,路径可包含空格,可以以‘\‘结尾, 可以以双引号包围之。

获取当前脚本所在路径:echo %~dp0(需要写在脚本中,运行脚本时显示)

扩展变量

@ 与%i相关的变量(bat参数或者for循环的%i)
假设文件为C:\Documents and Settings\jinsun\桌面\ParseSinglePkgs.bat
%0        C:\Documents and Settings\jinsun\桌面\ParseSinglePkgs.bat
%~dp0 C:\Documents and Settings\jinsun\桌面\
%cd%   C:\Documents and Settings\jinsun\桌面
%~nx0   ParseSinglePkgs.bat
%~n0     ParseSinglePkgs
%~x0     .bat

@ 与%VAR%相关的变量
%VAR:str1=str2%   会将VAR中的str1替换为str2(str2如果为空则可以达到删除的效果,str1前可以加*,变量%ABC:*B=%是C)
%VAR:~0,-2%          会提取VAR 变量的所有字符,除了最后两个
%VAR:~-2%             会提取VAR 变量的最后两个
%

时间: 2024-11-29 02:40:54

批处理中的变量的相关文章

在批处理中判断延迟环境变量扩展是否已启用的方法

研究背景 由于特殊原因,有时我们需要在批处理中判断延迟环境变量扩展是否已启用,可以用下面的方法进行判断. 使用脚本 @echo off setlocal enabledelayedexpansion set layedexpansion=1&if not "!layedexpansion!"=="1" (echo 延迟环境变量扩展未启用) else echo 延迟环境变量扩展已启用 pause 原文地址:http://blog.51cto.com/condu

批处理设置系统环境变量

在软件运行过程中,可能需要配置计算机的环境变量,在这里分为两种情况: 一:增加或修改环境变量只在当前软件环境中使用 如我们设置Java的环境变量: set CLASSPATH=%CLASSPATH%;C:\LS\JAVA.JAR保持原有的不变  自己加上要加的jar包,用分号隔开,当然你也可以写到前面,如:set CLASSPATH=D:/My_Path;%CLASSPATH%set JAVA_HOME=  这里的路径自己写吧不过这样写只对你打开的这个dos窗口有效,也就是你只有在这个窗口用ja

【转】BAT批处理中的字符串处理详解(字符串截取)

下面对这些功能一一进行讲解. 1.截取字符串 截取字符串可以说是字符串处理功能中最常用的一个子功能了,能够实现截取字符串中的特定位置的一个或多个字符.举例说明其基本功能: @echo off set ifo=abcdefghijklmnopqrstuvwxyz0123456789 echo 原字符串(第二行为各字符的序号): echo %ifo% echo 123456789012345678901234567890123456 echo 截取前5个字符: echo %ifo:~0,5% ech

bat批处理中怎样用while循环

bat 常用命令 echo.@.call.pause.rem(小技巧:用::代替rem)是批处理文件最常用的几个命令,我们就从他们开始学起. ==== 注 =========== 首先, @ 不是一个命令, 而是DOS 批处理的一个特殊标记符, 仅用于屏蔽命令行回显. 下面是DOS命令行或批处理中可能会见到的一些特殊标记符: CR(0D) 命令行结束符 Escape(1B) ANSI转义字符引导符 Space(20) 常用的参数界定符 Tab(09) ; = 不常用的参数界定符  + COPY命

dos下 和 批处理中的 for 语句的基本用法

for 语句的基本用法 : 最复杂的for 语句,也有其基本形态,它的模样是这样的:   在cmd 窗口中:for %I in (command1) do command2 在批处理文件中:for %%I in (command1) do command2 之所以要区分 cmd 窗口和批处理文件两种环境,是因为在这两种环境下,命令语句表现出来的行为虽然基本一样,但是在细节上还是稍有不同,最明显的一个差异就是:在cmd 窗口中,for 之后的形式变量I 必须使用单百分号引用,即%I:而在批处理文件

CSS中的变量使用详解

CSS中的变量给了我们诸多优点:方便.代码重用.更可靠的代码库和提升防错能力. 示例 :root { --base-font-size: 16px; --link-color: #6495ed; } p { font-size: var( --base-font-size ); } a { font-size: var( --base-font-size ); color: var( --link-color ); } 基础 当使用CSS变量时,你应该了解的三个主要组成: 自定义属性 var()

dos 批处理中%cd% 和%~dp0的区别

看网上介绍区别,写的好复杂,其实很简单: %cd%  在批处理和命令窗口都能使用.用于打印,当前工作路径. %~dp0% 则只能用于批处理中,用于获得当前批处理文件所在的路径. 做个试验试一下: @echo off echo this is %%cd%% %cd% echo this is %%~dp0 %~dp0 echo switch to another folder: cd d:\Program Files (x86) echo this is %%cd%% %cd% echo this

转载:在批处理中使用随机数字

在批处理中使用随机数字 RANDOM 是一个动态环境变量,用于返回一个0~32767 之间的随机整数.当 CMD.exe 捕获到 RANDOM 关键字后,会调用相关函数生成一个基于当前系统时间的随机整数. 在代码中有两种方式使用RANDOM变量:%random% (一般多使用这种形式)!random!(开启变量延迟扩展后可以这样使用) 在 Set /a 中不能像普通变量一样(如,set /a a=a+1)直接使用变量名字: 正确用法是:set /a a=%RANDOM%+5 或 set /a a

【分享】批处理中分割字符串

把一个字符串按照特定的字符分割成多个子字符,一般的编程语言中都提供内置的方法来实现这个功能,在批处理中可以通过命令for来完成.命令格式如下: for /f "tokens=x,y,m-n delims=chars" %%a in ("str") do cmd 其中tokens获取分割后字符串的列数,列数从1开始技术,可以指定多个,中间用“,”分割.tokens设置具体含义如下: tokens=x 表示只提取第x列. tokens=x,y 表示只提取第x列和第y列.